当收集计数小于参数时,取(参数)

时间:2012-04-09 13:38:47

标签: c#

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

如果我写这个:

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

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

感谢。

4 个答案:

答案 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();