foreach (var personne dans peopleList.Where (person => personne.FirstName == "Messi")) { selectPeople.Add (personne); }SImplifier avec LINQ - Sélection de base
Je me demande simplement s'il existe un moyen de simplifier cela en utilisant LINQ.
Comme plutôt que de regarder tous les gens que je tentais d'utiliser LINQ pour remplir une liste simplement avec le « Messi » 's ... cherchait quelque chose comme ...
var selectPeople = peopleList.Select(x=>x.FirstName=="Messi");
Ensuite, Je pourrais juste ajouter tout le monde dans cette liste sans vérification. Mais cela ne fonctionne pas comme prévu. Il est peut-être inutile de simplifier cette expression. Mais la question semblait utile juste pour renforcer mes connaissances LINQ.
J'ai maintenant 'var selectPeople = peopleList.Where (personne => person.Name == "Messi") ToList() ; 'donc je suppose que la question est vraiment sur la façon d'utiliser Select and SelectMany – baron
' SelectMany' est utilisé lorsque chaque élément peut renvoyer plusieurs résultats et que vous souhaitez les combiner dans un ensemble de résultats unique. Par exemple. 'IEnumerable allChildren = person.SelectMany (person => person.GetChildren());' Vous n'en avez pas besoin avec votre exemple. –
En outre, 'Select' est souvent redondant lorsque vous utilisez des méthodes d'extension avec lambdas au lieu de l'expression de requête. Mais si vous voulez projeter l'objet dans quelque chose d'autre, utilisez 'Select'. Par exemple, si vous voulez juste une liste de LastNames lorsque FirstName est égal à "Messi", vous feriez quelque chose comme 'peopleList.Where (p => p.FirstName ==" Messi "). Sélectionnez (p => p.LastName) ; ', ce qui devrait donner un' IEnumerable 'représentant les noms de toutes les personnes correspondant aux critères donnés. –