我正在摆弄 LINQ to SQL 和 LINQ,但我遇到了一些我不太理解的东西。
当我这样做时:
var a = Table.Select(s => s.Id).Take(5).Count();
var b = Table.Select(s => s.Id).Take(5).Skip(2).Count();
var c = Table.Select(s => s.Id).Skip(2).Take(5).Count();
Console.WriteLine("{0}, {1}, {2}", a, b, c);
我明白了
5, 5, 5
我希望得到 5、3、5(如果我尝试使用列表进行模拟也是如此)
var data = new List<int> {0, 1, 2, 3, 4, 5, 6};
var a = data.AsQueryable().Select(d=>d).Take(5);
var b = data.AsQueryable().Select(d=>d).Take(5).Skip(2);
var c = data.AsQueryable().Select(d=>d).Skip(2).Take(5);
Console.WriteLine("{0}, {1}, {2}", a, b, c);
5, 3, 5
到底是怎么回事?