2012-09-01 34 views
1
Enumerable.Range(1, 999).Select((n,i) =>{ return n*i;}) 

「我」每次都得到什麼?爲什麼不能添加「j」?C#LINQ中的選擇

+0

'i'是該序列中的元素的從0開始實際上它是[此方法](http://msdn.microsoft.com/en-us/library/bb534869索引.aspx)你在打電話。有三個參數沒有第三個重載。 –

回答

1

Select的過載接受與兩個參數的λ將採取的第一個參數從所述序列,並且第二個是元素的索引。

在你的例子中i將始終爲n-1,所以沒有太多的用處。當與非平凡的序列或非數字類型的序列工作它可以有時是有利的具有在選擇表達可用的元素的序號。

沒有三個參數版本。這就是爲什麼(n,i,j)不起作用。

1

的我是你用於當前正在投影元素的索引名稱。您不能指定第三個參數,因爲沒有定義具有三個參數的委託的Select的重載。