foreach (var persona en peopleList.Where (person => person.FirstName == "Messi")) { selectPeople.Add (person); }Amplificación con LINQ - Selección básica
Me pregunto si hay alguna manera de simplificar esto usando LINQ.
Al igual que en vez de mirar a toda la gente que estaba tratando de utilizar LINQ que llenar sólo una lista con el "Messi" 's ... estaba intentando algo así como ...
var selectPeople = peopleList.Select(x=>x.FirstName=="Messi");
Entonces Podría simplemente agregar a todos en esa lista sin un control. Pero no funciona como estaba planeado.
Quizás no tenga sentido simplificar esa expresión. Pero la pregunta parecía valiosa solo para fortalecer mi conocimiento de LINQ.
Ahora tenemos 'var = selectPeople peopleList.Where (persona => person.Name == "Messi") ToList() ; 'así que supongo que la pregunta es realmente acerca de cómo usar Select y SelectMany – baron
Se usa' SelectMany' cuando cada elemento puede devolver resultados múltiples y desea combinarlos en un solo conjunto de resultados. P.ej. 'IEnumerable allChildren = person.SelectMany (person => person.GetChildren());' No lo necesita con su ejemplo. –
Además, 'Seleccionar 'suele ser redundante cuando se utilizan métodos de extensión con lambdas en lugar de expresión de consulta. Pero si desea proyectar el objeto en otra cosa, use 'Seleccionar'. Por ejemplo, si solo quiere una lista de LastNames cuando FirstName equivale a "Messi", haría algo como 'peopleList.Where (p => p.FirstName ==" Messi "). Select (p => p.LastName) ; ', que debería dar como resultado un' IEnumerable 'que representa los apellidos de todas las personas que coinciden con los criterios dados. –