[英]How to get from a object list only one by object value
我有一個完整的對象“人”列表。
我需要一個僅包含每個團隊的第一個人的簡短列表,因此在每種情況下都需要某種分組和第一項
如何將完整列表轉移到每個組的第一個項目和 teamNumber 的短列表中?
List<Person> list = new List<Person>()
{
new Person(){TeamNumber = 1, Name = "Peter"},
new Person(){TeamNumber = 1, Name = "Klaus"},
new Person(){TeamNumber = 1, Name = "Maria"},
new Person(){TeamNumber = 1, Name = "Gerda"},
new Person(){TeamNumber = 2, Name = "Ralf"},
new Person(){TeamNumber = 2, Name = "Oskar"},
new Person(){TeamNumber = 2, Name = "Anna"},
new Person(){TeamNumber = 3, Name = "Hannah"},
new Person(){TeamNumber = 3, Name = "Susi"},
new Person(){TeamNumber = 4, Name = "Ida"}
};
我喜歡得到一個簡短的列表,例如:(總是每個團隊的第一個人)
類人:
public class Person
{
public int TeamNumber { get; set; }
public string Name { get; set; }
}
var result= list.GroupBy(t => t.TeamNumber).Select(p => p.First()).ToList();
我會這樣做:
首先,您GroupBy
TeamNumber 以便(將它們分組,所以您只會得到一個。然后您獲取第一個記錄( Person
)並為該 TeamNumber 選擇它。然后您對整個列表執行此操作,並將其作為新列表返回。
var shortList = list.GroupBy(t => t.TeamNumber).Select(e => e.FirstOrDefault()).ToList();
然后我建議你閱讀linq
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.