query - linq c# tutorial español
Lista de listas de Linq para una sola lista (4)
Desea utilizar el método de extensión SelectMany
.
var residences = details.SelectMany(d => d.AppForm_Residences).ToList();
Parece que este es el tipo de cosa que ya habría sido respondida pero no puedo encontrarla.
Mi pregunta es bastante simple, ¿cómo puedo hacer esto en una declaración para que en lugar de tener que volver a la lista vacía y agregar en la siguiente línea, pueda tener una única declaración linq que emita mi lista final? detalles es una lista de elementos que contienen una lista de residencias, solo quiero que todas las residencias estén en una lista plana.
var residences = new List<DAL.AppForm_Residences>();
details.Select(d => d.AppForm_Residences).ToList().ForEach(d => residences.AddRange(d));
Hay un código de muestra para usted:
List<List<int>> l = new List<List<int>>();
List<int> a = new List<int>();
a.Add(1);
a.Add(2);
a.Add(3);
a.Add(4);
a.Add(5);
a.Add(6);
List<int> b = new List<int>();
b.Add(11);
b.Add(12);
b.Add(13);
b.Add(14);
b.Add(15);
b.Add(16);
l.Add(a);
l.Add(b);
var r = l.SelectMany(d => d).ToList();
foreach(int i in r)
{
Console.WriteLine(i);
}
Y el out put será:
1
2
3
4
5
6
11
12
13
14
15
16
Press any key to continue . . .
Use SelectMany
var all = residences.SelectMany(x => x.AppForm_Residences);
Y para aquellos que quieren la sintaxis de la expresión de consulta: usas dos declaraciones de
var residences = (from d in details from a in d.AppForm_Residences select a).ToList();