foreach(var person in peopleList.Where(person => person.FirstName ==「Messi」)) { selectPeople.Add(person); }用LINQ隱藏 - 基本選擇
我只是想知道是否有任何方法來簡化這個使用LINQ。
像,而不是考慮所有我試圖使用LINQ只需填寫清單的「梅西」的人...試圖像...
var selectPeople = peopleList.Select(x=>x.FirstName=="Messi");
然後我可以在沒有檢查的情況下添加列表中的每個人。但它沒有按計劃運作。
也許沒有必要簡化表達式。但這個問題似乎值得加強我的LINQ知識。
我現在已經得到了'VAR selectPeople = peopleList.Where(人=> person.Name == 「梅西」)ToList() ;'所以我想這個問題真的是關於如何使用Select和SelectMany – baron 2010-03-31 00:55:30
'SelectMany'用於每個項目可以返回多個結果並且想要將它們組合成單個結果集。例如。 'IEnumerable allChildren = person.SelectMany(person => person.GetChildren());'你不需要用你的例子。 –
2010-03-31 01:05:24
此外,當您使用lambdas擴展方法而不是查詢表達式時,「Select」常常是多餘的。但是如果你想將對象投影到別的東西上,使用'Select'。例如,當FirstName等於「Messi」時,如果你只想要一個LastNames列表,你可以像'peopleList.Where(p => p.FirstName ==「Messi」)那樣做。Select(p => p.LastName) ;',這應該導致一個'IEnumerable'代表符合給定條件的所有人的姓氏。 –
2010-03-31 01:08:27