我有一个这样的数据列表:
ID AddressPurpose Address ...
1 L
1 P
2 L
2 P
3 P
3 L
4 P
4 L
5 P
6 L
我希望能够过滤数据,以便对于每个唯一数字,如果有 P 行,则返回它,否则返回 L 行。所以数据将如下所示:
ID AddressPurpose Address ...
1 P
2 P
3 P
4 P
5 P
6 L
目前我有这个工作正常的查询:
var query = from c in list
orderby c.AddressPurpose descending
group c by c.ID
into g
select g;
var finalList = new List<Company>();
foreach (var list in query)
{
finalList.Add(list.First());
}
return finalList;
有没有更好的方法可以在不使用额外的 foreach 的情况下做到这一点?