私はそうのようなデータのリストを持っている:平坦化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
現時点では私は正常に動作し、このクエリを持っている:
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を使用せずにこれを行うには良い方法はありますか?
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! –
そうだね。ネストされたクエリも好きです。複雑なクエリを繰り返す必要がある場合はいつでも再利用できます。 –
ありがとうございます。それは素晴らしい作品です。私は「今」の部分に理解しています。 –