2012-09-18 59 views

回答

8

没有任何反应。如果myEnumerable确实是ICollection<MyType>collection将包含它。否则它将是null。就那么简单。

+1

谢谢丹尼尔。如何设置ICollection的count属性? –

+0

它已经在那里。它没有被设置。演员不会创建新的实例! –

+0

那很好。我不知道我的IEnumerable实际上是一个ICollection。你有一个链接,更详细地解释了这一点。基本上我正在处理一个IEnumerable,我宁愿不枚举集合来计数。投到ICollection似乎解决了这个问题,它似乎有点奇怪,它总是有秘密计数。 –

1

重要的一点:

当过你施放IEnumerable类型对象ICollection将引用类型。

一样,从收集去除项目将从IEnumerable集合中删除该项目也是如此。

例如:

IEnumerable<AnyClass> enumerableObject; 

ICollection<AyClass> collectingObject = (ICollection<AnyClass>)enumerableObject; 

foreach(var item in collectingObject){ 

collectingObject.Remove(item); 

} 

如果你的enumerableObject访问值,你会发现它更新,所有的值删除。