linqでグループごとに連番をふりたい

投稿者: Anonymous

実現したいことはデータの塊ごとに連番を表示したいです。

のような形で一つの注文に対して紐づいた連番を取得したい場合、linqだとどのようにしたら値を取得できますか?
linqについて全く理解ができていないのでわからないのですが、複数selectをすることができるものなのですか?
groupbyをするときはgroupbyのみしかかくことができないものなのでしょうか?
下記のinnnerjoin以降のコードを書いたときは(from句)を書いたものにgroupbyを追記するときはどのような形にすればいいのでしょうか?。
作成コード

 List<Oracle> oracle = createOracleList();
            List<Csv> csv = createCsvList();
            int i++;
            var innnerjoin = from c in csv
                             join o in oracle
                             
                                 select new  ResultDT
                                 {
                                     
                                     名前 = c.Name,
                                     番号= 1
                                 };

解決

クエリ構文では使えませんが、メソッド構文であればインデックス付きのSelectメソッドSelectManyメソッドが用意されています。ですので、そもそも要素数を数える行為が適切か考慮が必要です。

var query = enumerables
   .GroupBy(x => x.name, (x, i) => new { x.name, no = i + 1, x.item })
   .SelectMany(g => g);
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *