2

匿名オブジェクトを返す Linq クエリを作成するときにカウンターが上がる可能性はありますか?

例えば

var results = from foo in bar select new { foo.ID, foo.Name, Counter = ???? }    

増加する数を返すメソッドを定義しようとしましたが、最終結果はすべてのオブジェクトで同じになります。

明確にするために:結果を

ID、名前、1
ID、名前、2
ID、名前、3

その他

4

4 に答える 4

2

流暢な構文でインデックス( queryables でも​​利用可能) を含むのオーバーロードをSelect使用すると、次のことができます。

var results = bar.Select((foo, index) => new 
                                         { 
                                             foo.ID,
                                             foo.Name, 
                                             Counter = index + 1 
                                          });

このオーバーロードはクエリ構文では使用できないことに注意してください。

于 2012-06-05T07:25:54.017 に答える
1
var counter = 0;
var results =
    from foo in bar
    select new { foo.ID, foo.Name, Counter = ++counter }; 
于 2012-06-05T07:25:11.670 に答える
0

このようなものかもしれません:

var result= db.bar.Select((foo,i)=>select new {foo.ID, foo.Name, Counter = i+1});
于 2012-06-05T07:27:21.637 に答える
0

インデックス付きの Select() オーバーロードを使用します。

var results = bar.Select((foo, i) => new { foo.ID, foo.Name, Counter = i + 1});
于 2012-06-05T07:28:06.510 に答える