匿名オブジェクトを返す Linq クエリを作成するときにカウンターが上がる可能性はありますか?
例えば
var results = from foo in bar select new { foo.ID, foo.Name, Counter = ???? }
増加する数を返すメソッドを定義しようとしましたが、最終結果はすべてのオブジェクトで同じになります。
明確にするために:結果を
ID、名前、1
ID、名前、2
ID、名前、3
その他
匿名オブジェクトを返す Linq クエリを作成するときにカウンターが上がる可能性はありますか?
例えば
var results = from foo in bar select new { foo.ID, foo.Name, Counter = ???? }
増加する数を返すメソッドを定義しようとしましたが、最終結果はすべてのオブジェクトで同じになります。
明確にするために:結果を
ID、名前、1
ID、名前、2
ID、名前、3
その他
流暢な構文でインデックス( queryables でも利用可能) を含むのオーバーロードをSelect
使用すると、次のことができます。
var results = bar.Select((foo, index) => new
{
foo.ID,
foo.Name,
Counter = index + 1
});
このオーバーロードはクエリ構文では使用できないことに注意してください。
var counter = 0;
var results =
from foo in bar
select new { foo.ID, foo.Name, Counter = ++counter };
このようなものかもしれません:
var result= db.bar.Select((foo,i)=>select new {foo.ID, foo.Name, Counter = i+1});
インデックス付きの Select() オーバーロードを使用します。
var results = bar.Select((foo, i) => new { foo.ID, foo.Name, Counter = i + 1});