나는과 같이 데이터의 목록을 가지고 :편평 Linq는 그룹 쿼리
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
를 내가 잘 작동이 쿼리가 : 여분의 foreach를 사용하지 않고이 할 수있는 더 나은 방법이
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;
거기를?
var query =
from i in (
from c in list
orderby c.AddressPurpose descending
group c by c.ID into g
select g)
select i.First();
return query;
나는이 그것 (또는 어쩌면 최고의)을 할 수있는 유일한 방법은 아니다 확신하지만 당신의 "foreach는"을 마무리 않습니다
필자가 직접 입력 한 내용 인 lc를 입력 했으니 까? +1! –
그렇게 생각합니다. 나는 그들이 당신이 복잡한 쿼리를 반복 할 필요가 재사용 언제있어, 너무 당신의 중첩 된 쿼리를 좋아한다. –
감사합니다. 그건 잘된거야. 나는 이제 "into into"부분을 이해합니다. –