4
複数の列を取得する方法を探していましたが、SQLで1つだけグループ化して情報を見つけました。しかし、私はlinqでそれを行う方法を考え出すことができません。 linqで1つだけグループ化してすべての列を選択
I持って、次のおもちゃの例テーブル:| Id | Message | GroupId | Date |
|-------------------------------|
| 1 | Hello | 1 | 1:00 |
| 2 | Hello | 1 | 1:01 |
| 3 | Hey | 2 | 2:00 |
| 4 | Dude | 3 | 3:00 |
| 5 | Dude | 3 | 3:01 |
そして私は(「日付」降順順序で)次のように明確なGroupId
を持つ行のすべての列を回復したいと思います:
| Id | Message | GroupId | Date |
|-------------------------------|
| 1 | Hello | 1 | 1:00 |
| 3 | Hey | 2 | 2:00 |
| 4 | Dude | 3 | 3:00 |
私は、そのグループIDを与えられた唯一のものである限り、グループ化された行(第1、第2 ...)からどの行が選択されるかは本当に気にしません。
私がこれまでに次のコードで出てきているが、それはすることになっている何をしていません。
List<XXX> messages = <MyRep>.Get(<MyWhere>)
.GroupBy(x => x.GroupId)
.Select(grp => grp.OrderBy(x => x.Date))
.OrderBy(y => y.First().Date)
.SelectMany(y => y).ToList();
注意を少なくとも1つのアイテムを持っていた。 –
@ギラード私はものをオーバーコンプリートしたように見えます....あなたは私の問題を解決するだけでなく、これらの例についていくつかの理解を提供しています!ありがとうございます – Tekerson
@テッカーソン - あなたは非常に歓迎です:)おそらくまた[SOのドキュメントのlinqを見る](http://stackoverflow.com/documentation/c%23/68/linq-queries#t=201608111109444847305) - そこに'TakeMe'、 'OrderBy'について素敵なセクションです - それからたくさん学ぶことができます:) –