Enumerable.Count after Take 返回 Take-number 而不是实际数字
本文关键字:数字 Take-number Count after Take 返回 Enumerable | 更新日期: 2023-09-27 18:32:19
我有一个奇怪的情况。我有以下查询使用Devexpress XPO到MS SQL。
var _elements = (from n in new XPQuery<Elements>( XpoDefault.Session )
select n).Take(100);
int count = _elements.Count();
foreach ( var e in _elements) {
Display(e);
);
当查询有 0 个结果时,Count() 返回 100,但不执行 foreach 语句,因为枚举器不产生任何结果。
如何检查查询中有多少行,并且只占用 100 条记录(或更少)?
我不明白为什么Count()
从 take 返回数字,而没有要枚举的记录。
我希望你能帮助我。谢谢!
如果你想检查查询中有多少行,你需要在 Take() 之前执行 Count()。Take 返回 IEnumerable,这意味着查询将在瞬间执行,届时您将执行 ToList、First/FirstOrDefaut、Last/LastOrDefault 等。有关 IEnumerable 的更多信息