虽然列举接口提供了一个协议,用于向前的方式遍历集合,但它们没有提供一种机制来确定集合的大小,通过索引访问集合的成员,搜索集合,或修改集合.为了实现这些功能,.NET Framework定义了ICollection,IList和IDictionary接口.每个接口都有Generic的接口和非Generic的接口,请注意非Generic多数用于支持遗留代码. 这些接口的继承挂关系如下图所示: Generic的接口和非Generic的接口之间的差距超出了你的预期,特别是ICollection和ICol