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