使用.NET LINQ,我想查找以PID開頭的條目(名稱)等於0或1.但是,如果名稱同時具有,我只需要0.在以下:如何查找LINQ的第一次出現
PID Name
0 P1
1 P1
1 P3
0 P4
0 P5
1 P5
我會回來行:
0 P1
1 P3
0 P4
0 P5
的PID值可以達到10任何建議,這可怎麼辦呢?
使用.NET LINQ,我想查找以PID開頭的條目(名稱)等於0或1.但是,如果名稱同時具有,我只需要0.在以下:如何查找LINQ的第一次出現
PID Name
0 P1
1 P1
1 P3
0 P4
0 P5
1 P5
我會回來行:
0 P1
1 P3
0 P4
0 P5
的PID值可以達到10任何建議,這可怎麼辦呢?
您可以使用:
var results = collection
.Where(item => item.PID == 0 || item.PID == 1)
.GroupBy(item => item.Name)
.Select(g => g.OrderBy(item => item.PID).First());
爲什麼FirstOrDefault()獨自工作? – 4thSpace
在組列表中當然存在一個成員,所以Firs()具有很高的可讀性。 –
@ 4thSpace FirstOrDefault將返回一個元素。 GroupBy使它按特定元素分組,因此您返回每個組的第一個元素。你可以使用FirstOrDefault而不是First,但是這個組已經做了過濾,所以這個默認不會發生...... –