C#集合类型的基类为ICollection和ICollection<T>,IList<T>和IList分别是他们的子类,表示可按照索引单独访问的一组对象IList<T>和IList添加了索引器,所以可以通过索引的方法访问集合.如果其他自定义的集合类只继承了ICollection和ICollection<T>类型,以求更大的灵活性,那么如果我自定义一个集合类型用于访问和删除集合中类型并且兼容所有集合的时候必须加以区别,
IList<T> list = collection as IList<T>;如果collection继承IList<T>,则可以通过
for(Int32 i =0;i<list;i++) Int32 tmp=list[i];方式进行遍历,
如果集合类型list==null,即collection没有派生自IList<T>,则必须通过迭代的方式遍历,
这里区分是因为程序效率方面考虑,IList<T>也可以通过迭代方式遍历,但是如果是FindLastIndex方法,从集合最后开始遍历则效率会提升