当集合计数小于参数时,Take(参数)
本文关键字:参数 Take 小于 集合 | 更新日期: 2023-09-27 18:30:25
假设我有一个对象列表TheListOfObjects。
如果我写这个:
TheListOfObjects = TheListOfObjects.Take(40).ToList();
如果列表中只有 30 个项目,它会崩溃还是只返回前 30 个项目?当 TheListOfObjects 为空,甚至为空时?
谢谢。
这是您应该尝试或至少检查文档的地方之一。
如果列表中只有 30 个项目,它会崩溃还是只返回前 30 个项目?
它只会返回前 30 个。
当对象列表为空时
它将返回空序列。
甚至为空?
这将导致ArgumentNullException
。
从 MSDN:
Take<TSource>
枚举源并生成元素,直到生成计数元素或源不包含更多元素。如果
count
小于或等于零,则不枚举source
并返回空IEnumerable<TSource>
。
在例外情况下:
Exception Condition
ArgumentNullException source is null
在你登录StackOverflow的这段时间里,你可以检查MSDN并获得一个权威的答案(请注意,一些轻微不正确或部分不完整的答案已经在这里发布和删除),或者启动Visual Studio并给你的轮子涂了一点油。
MSDN 说:
Take(Of TSource) 枚举源并生成元素,直到生成计数元素或源不包含更多元素。
来自 msdn:
Take<T>
枚举源并生成元素,直到计数 元素已生成或源不包含更多元素。如果 count 小于或等于零,则不枚举源,并且 返回一个空
IEnumerable<T>
。
试试这个
TheListOfObjects = TheListOfObjects.Take(TheListOfObjects.Count > 30 ? 30 : TheListOfObjects.Count).ToList();