none
Combinar dos listas IEnumerable, o agregar datos de una a otra RRS feed

  • Pregunta

  • Buen dia a todos, tengo dos listas de tipo IEnumerable en C# asp.net MVC, y deseo combinarlas, es neceseario que tengan el mismo numero de columnas, como de datos?
    jueves, 30 de mayo de 2019 21:42

Respuestas

  • hola

    si son la misma clase no pueden tener una mas columnas que la otra porque la propiedades de Stock son las mismas

    Si revisaste el link que proporcione veras que debes asignar a una variable el resultado de la union

    var result = coleccion1.Union(coleccion2);

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Pollokullos viernes, 31 de mayo de 2019 15:59
    viernes, 31 de mayo de 2019 15:49

Todas las respuestas

  • hola

    Pero de que tipo son estas IEnumerable ? o sea son de alguna clase que define, es la misma clase en ambas listas

    Podrias unirlas usando linq, pero depende como sea las listas qu tecnica usaras, si son iguales podrias usar el Union

     Enumerable.Union Method

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 30 de mayo de 2019 23:34
  • Las dos listas son de la misma clase, solo que una lista tiene mas columnas que la segunda, he intentado hacerlo de la siguiente manera pero no se estan uniendo, es necesario que las dos tengas las mismas columnas?, y estoy usando la libreria Dapper para llenarlas.

    var coleccion1 = conexion.Query<Stock>(cadSQL, commandType: CommandType.Text);
    
    var coleccion2 = conexion.Query<Stock>(cadSQL, commandType: CommandType.Text);

    Y para unirlas hago lo siguiente, aunque no me esta funcionando:

    coleccion.Union(conexionReadyToShip);

    viernes, 31 de mayo de 2019 15:09
  • hola

    si son la misma clase no pueden tener una mas columnas que la otra porque la propiedades de Stock son las mismas

    Si revisaste el link que proporcione veras que debes asignar a una variable el resultado de la union

    var result = coleccion1.Union(coleccion2);

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Pollokullos viernes, 31 de mayo de 2019 15:59
    viernes, 31 de mayo de 2019 15:49
  • Además del Union, si metes los IEnumerables en un List puedes usar AddRange:

    var lista1 = coleccion1.ToList();

    var lista2 = coleccion2.ToList();

    lista1.AddRange(lista2); // Ahora lista1 contiene todo lo que contenia antes y ademas lo que habia en lista2.

    viernes, 31 de mayo de 2019 15:57
  • Muchas gracias, estaba haciendo mal la union. me funciono correctamente.
    viernes, 31 de mayo de 2019 15:59
  • Muchas gracias.
    viernes, 31 de mayo de 2019 17:12