使用.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,但是这个组已经做了过滤,所以这个默认不会发生...... –