Использование Где со списками внутри списков - PullRequest
0 голосов
/ 04 ноября 2010

Мне нужно создать список с данными из List<List<T>(). Мне не нужно конвертировать данные; Мне нужно только найти элементы с конкретной информацией.

Пример: List<Countries>(): в этом списке есть еще один, содержащий города

Мне нужно найти правильный Город (плохой пример) ^^

Я пробовал:

countryList.Where(x=>x.Cities.Where(y=>y.Name.Contains("New")));

После поиска здесь, я думаю, мне нужно что-то с select.

Ответы [ 4 ]

3 голосов
/ 04 ноября 2010
var cities = from country in countrList
             from city in country.Cities
             where city.Name.Contains("New")
             select city;

или:

var cities = countrList
    .SelectMany(country => country.Cities)
    .Where(city => city.Name.Contains("New"));
1 голос
/ 04 ноября 2010

Я думаю, вы хотите, чтобы все города, название которых содержит ключевое слово "Новый":

var cities = countryList.SelectMany(country => country.Cities)
                        .Where(city => city.Name.Contains("New"))
                        .ToList();
1 голос
/ 04 ноября 2010

Попробуйте countriesList.FirstOrDefault( x => x.Cities.Any( y => y.Name.Contains("New"));

0 голосов
/ 04 ноября 2010
countrList.Where(x=>x.Cities.Any(y=>y.Name.Contains("New")));
...