Mam zapytanie LINQ, które zwraca, IEnumerable<List<int>>
ale chcę tylko zwrócić, List<int>
więc chcę scalić cały mój rekord w mojej IEnumerable<List<int>>
z tylko jedną tablicą.
Przykład:
IEnumerable<List<int>> iList = from number in
(from no in Method() select no) select number;
Chcę przenieść cały mój wynik IEnumerable<List<int>>
tylko na jedenList<int>
Stąd z tablic źródłowych: [1,2,3,4] i [5,6,7]
Chcę tylko jedną tablicę [1,2,3,4,5,6,7]
Dzięki
SelectMany( i => i )
? Często widziałem tę składnię, ale zdaje się, że funkcja select jest zdegenerowana, więc spodziewałem się, że projektanci języków opracują składnię skrótów specjalnie dla list listZe składnią zapytania:
źródło
źródło
.ToArray()
? - To jest trochę poszlakowe - jeśli musisz powtórzyć tylko raz - lub jeśli elementy mogą się zmienić,.ToArray()
to zdecydowanie nie jest to, czego chcesz. Ale przy elementach statycznych, które zamierzasz wyliczyć wiele razy.ToList()
lub.ToArray()
da to poprawę wydajności (kosztem nieco wyższego zużycia pamięci, co zwykle jest całkiem niezłą okazją).List<int>
, więc.ToList()
byłby to właściwy wybór.Lubię to?
źródło
Jeśli masz,
List<List<int>> k
możesz to zrobićźródło