当集合计数小于参数时,Take(参数)

本文关键字:参数 Take 小于 集合 | 更新日期: 2023-09-27 18:30:25

假设我有一个对象列表TheListOfObjects。

如果我写这个:

TheListOfObjects = TheListOfObjects.Take(40).ToList();

如果列表中只有 30 个项目,它会崩溃还是只返回前 30 个项目?当 TheListOfObjects 为空,甚至为空时?

谢谢。

当集合计数小于参数时,Take(参数)

这是您应该尝试或至少检查文档的地方之一。

如果列表中只有 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();