如何使用LINQ查找第一个匹配项

时间:2011-12-05 23:56:10

标签: c# .net linq

使用.NET LINQ,我想找到以PID等于0或1开头的条目(名称)。但如果名称同时包含两者,我只想要0.在下面:

PID Name
 0  P1
 1  P1
 1  P3
 0  P4
 0  P5
 1  P5

我会回到行:

 0 P1
 1 P3
 0 P4
 0 P5

PID值最高可达10.有任何建议可以做到吗?

2 个答案:

答案 0 :(得分:11)

您可以使用:

var results = collection
               .Where(item => item.PID == 0 || item.PID == 1)
               .GroupBy(item => item.Name)
               .Select(g => g.OrderBy(item => item.PID).First());

答案 1 :(得分:1)

在语句末尾添加“.FirstOrDefault()”