int i = 0;var q = from n in numbers select ++i;
public void Test()
{
int[] numbers = new int[] { 5, 4, 1, 3, 9, 8, 6, 7, 2, 50 };
int i = 0;
var q =
from n in numbers
select ++i;
foreach (var v in q)
{
Console.WriteLine("v = {0}, i = {1}", v, i);//i==v 真是奇怪,这里的i难道不是上边的变量i
}
}
------解决方案--------------------第一个.延迟查询
第二个.tolist的时候 i已经等于10了
------解决方案--------------------
select ++i;
延迟执行,循环时输出数据
调用ToList()扩展方法,立即执行查询, i就为10
------解决方案--------------------延迟查询。。。。。。。。。。。。