var counter=0;
var array = new int[] {0, 1, 2, 3,4};
var test = array.Select(a => counter++);
foreach (var item in test)
{
Console.WriteLine(item);
}
Console.ReadLine();
當我在控制檯上方運行代碼時,會打印0,1,2,3,4。 但是,當我在調試模式下展開測試數組時,我可以看到數字從10到14.爲什麼? 另外,你能幫我一下爲什麼控制檯不打印1,2,3,4,5,因爲它應該返回遞增的計數器。C#Linq打印比在調試模式下顯示的值不同
使用'array.Select(a => counter ++)。ToList()'它會停止發生! – DavidG
對於問題的第二部分,您可能需要閱讀++上的文檔:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/increment-operator。 'counter ++'在遞增之前返回計數器。 – Chris
您在調試時多次枚舉'test',導致'counter'遞增。 – Lee