LINQ で増加するカウント変数を使用できますか? 質問する

LINQ で増加するカウント変数を使用できますか? 質問する

私は次のようなことをしたいのです:

from a in stuff
let counter = 0
select new { count = counter++, a.Name };

しかし、カウンターが読み取り専用であるというエラーが表示されます。クエリの外部で変数を宣言せずに、これに似た操作を実行する方法はありますか?

基本的には、カウント/インデックス列を表示したいだけですLINQPad(ちなみに、これは素晴らしいことです)、つまり、事前にカウンターを宣言することはできません。

ベストアンサー1

副作用を使用するのではなく、Selectインデックスを受け取る のオーバーロードを使用します。

stuff.Select((value, index) => new { index, value.Name });

あなたできた副作用を使用して実行しますが、試した方法ではありません:

int counter = 0;
var query = from a in stuff
            select new { count = counter++, a.Name };

しかし、私はこれを強くお勧めしません。

おすすめ記事