none
Comparar 2 listas y mostrar en una lista nueva la diferencia entre ellas C# RRS feed

  • Pregunta

  • Buenas tardes, tengo esta lista que se irà añadiendo de otra consulta.

    1.lista

    List<string> lista = new List<string>();

     lista.Add(coordenada);
                    foreach (var item in lista)
                    {
                        Console.Write(item + "-");
                    }

    2. lista array

                    

    string[] listaTablero = new string[] { "A1", "A2", "A3", "B1", "B2", "B3", "C1", "C2", "C3" };

      foreach (var item in listaTablero)
                    {
                        Console.Write(item + "/");
                    }

    3.Aqui quiero realizar una lista de los datos que falten en la 1era lista.

    ejemplo si tengo en la lista1: "A1", "A2"

    entonces en la nueva lista deberia mostrame: { "A3", "B1", "B2", "B3", "C1", "C2", "C3" };

    intentè con esto:

     var resArray = listaTablero.Intersect(lista).ToArray(); (con esto obtengo los iguales en ambas)
     var resArray = listaTablero.Distinct(lista).ToArray(); (aqui me sale error)

    Gracias de antemano por la ayuda.

     

    martes, 6 de abril de 2021 22:44

Respuestas

  • Lo que sucede es que el distinc devuelve datos y remueve aquellos que se repiten dentro de una lista, pero no se puede comparar lista con lista, le comparto la documentación oficial Enumerable.Distinct Método (System.Linq) | Microsoft Docs.

    Para resolver lo que deseas hacer yo realicé lo siguiente: 

        List<string> lst = new List<string>() {
                    "A1", "A2"
                };
                List<string> lst1 = new List<string>() {
                   "A1", "A2", "A3", "B1", "B2", "B3", "C1", "C2", "C3"
                };
                for (int i = 0; i < lst1.Count; i++)
                {
                    if (lst.Contains(lst1[i]))
                    {
                        var diff = lst[i];
                        console.Write(diff);
                    }
                }

    Saludos,

    Eric Ruiz


    miércoles, 7 de abril de 2021 15:45
    Moderador

Todas las respuestas

  • Hola Walter,

    Para poder entender bien el problema, cual es el error que te sale?

    Saludos,

    Eric Ruiz

    miércoles, 7 de abril de 2021 14:45
    Moderador
  • hola que tal Eric, osea lo que me gustaria es que en una lista nueva tener la diferencia de datos, para poder trabajar con esa nueva lista, el error, bueno es un intento que quise hacer nada mas, como encontre la linea de arriba de Intersect, quise tratar con distinc ejejejee, si puedes ayudarme seria genial, estarè atento. Gracias de antemano 
    miércoles, 7 de abril de 2021 15:36
  • Lo que sucede es que el distinc devuelve datos y remueve aquellos que se repiten dentro de una lista, pero no se puede comparar lista con lista, le comparto la documentación oficial Enumerable.Distinct Método (System.Linq) | Microsoft Docs.

    Para resolver lo que deseas hacer yo realicé lo siguiente: 

        List<string> lst = new List<string>() {
                    "A1", "A2"
                };
                List<string> lst1 = new List<string>() {
                   "A1", "A2", "A3", "B1", "B2", "B3", "C1", "C2", "C3"
                };
                for (int i = 0; i < lst1.Count; i++)
                {
                    if (lst.Contains(lst1[i]))
                    {
                        var diff = lst[i];
                        console.Write(diff);
                    }
                }

    Saludos,

    Eric Ruiz


    miércoles, 7 de abril de 2021 15:45
    Moderador
  • Deleted
    jueves, 8 de abril de 2021 0:57
  • Hola:

    ¿En qué se diferencia Lista, Enum, Array, Diccionario exactamente?

    Saludos.


    http://electronica-pic.blogspot.com

    jueves, 8 de abril de 2021 10:05