foreach (var person in peopleList.Where (person => person.FirstName == "Messi")) { selectPeople.Add (person); }SImplifica con LINQ - Selezione base
Mi chiedo solo se esiste un modo per semplificare questo utilizzando LINQ.
Come invece di guardare tutte le persone che stava cercando di usare LINQ basta compilare un elenco con il "Messi" 's ... stava cercando qualcosa di simile ...
var selectPeople = peopleList.Select(x=>x.FirstName=="Messi");
Poi Potrei semplicemente aggiungere tutti in quella lista senza un assegno. Ma non funziona come previsto.
Forse non ha senso semplificare quell'espressione. Ma la domanda sembrava utile solo per rafforzare la mia conoscenza LINQ.
ora ho 'var = selectPeople peopleList.Where (persona => person.Name == "Messi") ToList() ; quindi suppongo che la domanda riguardi davvero come utilizzare Select e SelectMany – baron
'SelectMany' viene utilizzato quando ogni elemento può restituire più risultati e si desidera combinarli in un unico set di risultati. Per esempio. 'IEnumerable allChildren = person.SelectMany (person => person.GetChildren());' Non è necessario con il tuo esempio. –
Inoltre, 'Seleziona' è spesso ridondante quando si utilizzano i metodi di estensione con lambdas anziché l'espressione di query. Ma se vuoi proiettare l'oggetto in qualcos'altro, usa 'Seleziona'. Ad esempio, se vuoi solo una lista di LastNames quando FirstName è uguale a "Messi", dovresti fare qualcosa come 'peopleList.Where (p => p.FirstName ==" Messi "). Seleziona (p => p.LastName) ; ', che dovrebbe risultare in un' IEnumerable 'che rappresenta il cognome di tutte le persone che corrispondono ai criteri specificati. –