我想过滤我的结果只采取X量的记录.我想知道Take()是如何工作的?
在这个网站上我找到了:http://www.hookedonlinq.com/TakeOperator.ashx
它说Take()"如果source为null,则抛出ArgumentNullException." 所以我该怎么做?我不能保证每次我做一个Take()我会在那个表中有一些记录.
所以我首先要做一个计数?然后再做一个查询以确保有一些记录要抓取?
如果我有Take(2)但只有1条记录会抛出同样的异常会发生什么?
Dan*_*ker 48
空引用和空集合之间存在差异.可以在空集合上调用Take.并且参数指定要采用的最大数量,因此指定多于集合中的项目也可以.
我建议参考MSDN以获取这样的精确细节.
对于Linq to Objects:http://msdn.microsoft.com/en-us/library/bb503062.aspx
对于数据库链接:http://msdn.microsoft.com/en-us/library/bb300906.aspx
小智 11
仅当您针对对象源执行此操作时,该空引用异常才会出现,例如:
List<MyObject> myList = null;
myList.Take(5); // this would produce the error, of course
Run Code Online (Sandbox Code Playgroud)
当您使用Linq to SQL时,它将返回您的数据的EMPTY枚举器,而不是空引用.出于同样的原因,如果您尝试使用超过可用的数量,它将只占用可用数量.我在某些情况下使用此方法来分页数据,当我要求提供的记录多于列表可用时,我肯定会使用此方法.
| 归档时间: |
|
| 查看次数: |
33230 次 |
| 最近记录: |