选择计数集合?

时间:2013-08-02 17:02:12

标签: c# linq list select collections

我有一个“exampleClass”,它有一个集合“exampleCollection”。 如果exam​​pleClass.ExampleCollection.Count = 0,则为exampleClass.ExampleCollection.Select(.... 那个查询会产生错误吗?

我正在使用linq使用c# 谢谢!

2 个答案:

答案 0 :(得分:1)

  

如果exampleClass.ExampleCollection.Count() == 0exampleClass.ExampleCollection.Select(....)会产生错误吗?

不,它只会产生一个空的IEnumerable<T>First()Last()会产生错误,但不会产生Select()

如果exampleClass.ExampleCollectionnull,那么获得NullReferenceException

答案 1 :(得分:1)

不,您只会收到一个空的IEnumerable<T>,更具体的是WhereSelectListIterator<T, bool>

但有趣的是,如果集合为null,则会抛出错误,但在扩展方法 Select内。行为是不同的,因为Select方法不是您的集合的实例方法,它是一个扩展方法,如下所示:

IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector);

使用扩展方法,您的对象作为参数传递给静态方法(扩展),因此NullRererenceException可能或可能不会被抛入其中(取决于内部实现)。在Select方法的情况下,