假设我有一个对象列表 TheListOfObjects。
如果我写这个:
TheListOfObjects = TheListOfObjects.Take(40).ToList();
如果列表中只有 30 个项目,它会崩溃还是只返回前 30 个?当 TheListOfObjects 为空,甚至为空时?
谢谢。
假设我有一个对象列表 TheListOfObjects。
如果我写这个:
TheListOfObjects = TheListOfObjects.Take(40).ToList();
如果列表中只有 30 个项目,它会崩溃还是只返回前 30 个?当 TheListOfObjects 为空,甚至为空时?
谢谢。
这是您应该尝试或至少检查文档的地方之一。
如果列表中只有 30 个项目,它会崩溃还是只返回前 30 个?
它只会返回前 30 个。
当 TheListOfObjects 为空时
它将返回空序列。
甚至为空?
这将导致一个ArgumentNullException
.
来自 MSDN:
Take<TSource>
枚举 source 并产生元素,直到产生 count 个元素或 source 不再包含元素。如果
count
小于或等于零,source
则不枚举并IEnumerable<TSource>
返回空。
在例外情况下:
Exception Condition
ArgumentNullException source is null
在您登录 StackOverflow 的时间里,您可以检查 MSDN 并获得权威答案(请注意,一些稍微不正确或部分不完整的答案已在此处发布和删除)或启动 Visual Studio 并润滑您的轮子一点点。
MSDN 说:
Take(Of TSource) 枚举 source 并产生元素,直到产生 count 个元素或 source 不再包含元素。
来自msdn:
Take<T>
枚举 source 并产生元素,直到产生 count 个元素或 source 不再包含元素。如果 count 小于或等于 0,则不枚举 source 并
IEnumerable<T>
返回空值。
试试这个
TheListOfObjects = TheListOfObjects.Take(TheListOfObjects.Count > 30 ? 30 : TheListOfObjects.Count).ToList();