在.Net中具有Count属性的最小接口是什么

Ign*_*cia 5 .net arrays collections inheritance list

我需要更改一个具有一个参数的方法,该参数需要一系列对象.我需要找到具有Count属性的最低接口(在继承树中).到目前为止,我正在使用IEnumerable,但由于这不是Count我需要将其更改为更宽的接口,因此该方法可以使用最大数量的系列类型(集合,列表,数组等).

提前致谢.

Dav*_*ale 6

ICollection添加Count属性.

正如@Joren正确指出的那样,如果你很高兴使你的收藏品具有通用性,那就IEnumerable<T>有扩展方法了Count<T>().然而,正如@Joel Coehoorn指出的那样,使用它是不可取的,因为它会强制重复序列.

  • Count <T>方法是IEnumerable <T>上的扩展方法,而不是ICollection <T>上的方法.(ICollection <T>只有Count属性,它继承自ICollection.)当然ICollection <T>继承自IEnumerable <T>,因此扩展方法在ICollection <T>实例上有效.我的观点是,对于Count <T>方法,IEnumerable <T>比ICollection <T>更基础. (3认同)

Dea*_*ing 5

ICollection添加了Count属性。