2010-11-04 31 views
0

Je dois créer une liste avec des données à partir d'un List<List<T>(). Je n'ai pas besoin de convertir les données; J'ai seulement besoin de trouver des éléments avec des informations spécifiques.Utilisation de l'emplacement des listes dans les listes

Exemple: List<Countries>(): dans cette liste est un autre contenant Villes

Je dois trouver la bonne ville (exemple mauvais) ^^

J'ai essayé:

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

Après cherchant ici, je crois que j'ai besoin de quelque chose avec select.

Répondre

3
var cities = from country in countrList 
      from city in country.Cities 
      where city.Name.Contains("New") 
      select city; 

ou:

var cities = countrList 
    .SelectMany(country => country.Cities) 
    .Where(city => city.Name.Contains("New")); 
+0

vier ma dieu je l'aime vraiment thx vous – Orri

+0

est là iw ay pour obtenir le pays et non la ville – Orri

+0

Dans mon premier extrait au lieu de 'select city' à la fin, vous pouvez utiliser' select country'. –

1

Essayez countriesList.FirstOrDefault(x => x.Cities.Any(y => y.Name.Contains("New"));

+0

Je vois que cela vous donnerait les pays avec toutes les villes qui ont le mot "nouveau". Probablement plus utile, non? –

+0

Je veux toutes les villes Que signifie FirstOr "Default"? Merci pour votre aide – Orri

+0

sry je devrais d'abord lire puis écrire J'ai besoin de pays, mais tous – Orri

1

Je pense que vous voulez que toutes les villes dont le nom contient le mot-clé "Nouveau":

var cities = countryList.SelectMany(country => country.Cities) 
         .Where(city => city.Name.Contains("New")) 
         .ToList(); 
+0

Merci beaucoup – Orri

0
countrList.Where(x=>x.Cities.Any(y=>y.Name.Contains("New"))); 
+0

wow thx u code très agréable. son perfekt pour mon cas – Orri