У меня есть список данных примерно так:
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?