72795


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

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

[code]

     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
                                     };
    
[/code]


CC BY-SA 4.0
2020-12-21T07:14:17.477
72792
2020-12-24T06:15:05.640
2020-12-23T09:34:08.957
42419
42419
question
c# linq
linqでグループごとに連番をふりたい


クエリ構文では使えませんが、メソッド構文であればインデックス付きの[`Select`メソッド](https://docs.microsoft.com/ja-
jp/dotnet/api/system.linq.enumerable.select?view=net-5.0#System_Linq_Enumerable_Select__2_System_Collections_Generic_IEnumerable___0__System_Func___0_System_Int32___1__)や[`SelectMany`メソッド](https://docs.microsoft.com/ja-
jp/dotnet/api/system.linq.enumerable.selectmany?view=net-5.0#System_Linq_Enumerable_SelectMany__2_System_Collections_Generic_IEnumerable___0__System_Func___0_System_Int32_System_Collections_Generic_IEnumerable___1___)が用意されています。ですので、そもそも要素数を数える行為が適切か考慮が必要です。

[code]

    var query = enumerables
       .GroupBy(x => x.name, (x, i) => new { x.name, no = i + 1, x.item })
       .SelectMany(g => g);
    
[/code]


CC BY-SA 4.0
2020-12-21T08:07:16.197
72795
2020-12-24T06:15:05.640
2020-12-24T06:15:05.640
4236
4236
72792
answer