私はこのようなことをしたい:
from a in stuff
let counter = 0
select new { count = counter++, a.Name };
しかし、カウンターが読み取り専用であるというエラーが表示されます。クエリの外部で変数を宣言せずに、これと同様のことを行う方法はありますか?
基本的に、 LINQPadでカウント/インデックス列を表示したいだけです(これは素晴らしいです、ところで)。つまり、事前にカウンターを宣言することはできません。
私はこのようなことをしたい:
from a in stuff
let counter = 0
select new { count = counter++, a.Name };
しかし、カウンターが読み取り専用であるというエラーが表示されます。クエリの外部で変数を宣言せずに、これと同様のことを行う方法はありますか?
基本的に、 LINQPadでカウント/インデックス列を表示したいだけです(これは素晴らしいです、ところで)。つまり、事前にカウンターを宣言することはできません。
副作用を使用するのではなくSelect
、インデックスをとるオーバーロードを使用します。
stuff.Select((value, index) => new { index, value.Name });
副作用を使用してそれを行うことはできますが、試した方法ではできません。
int counter = 0;
var query = from a in stuff
select new { count = counter++, a.Name };
ただし、これには強くお勧めします。
インデックスだけでなく、本当にカウンターにしたい場合は、カウンター宣言をLINQ式の外に移動するだけです。
var counter = 0;
from a in stuff
select new { count = counter++; a.Name };
ここに2つの変数を追加するだけNumberRow
です
.Select((x,NumberRow) => new ViewModelArchiveOrder
{
NumberRow= NumberRow + 1,
})