婷婷同学_
如下IList接口可以使用更多的方法。比如你看一个集合是否包含相应实体,IEnumerable不行,而IList里有Contains,相应的实现了IList的可以添加,删除相应实体。而IEnumerable不行。但是这不是说IList就比IEnumerable好,就是因为IList实现的功能多,相对来说限制大了。你看Object,任何类都可用作Object,这就是因为他简单。同理,能为IList表达的数据集,一定能为IEnumerable表达,而能为IEnumerable表达不一定能为IList表达。你可以想想Linq To Object里的方法为什么是对IEnumerable接口了而不是选择IList接口。性能对于我们来说不是问题,就算是问题,你问的性能是什么?是IEnumerable得到Current快还是什么的?那么我想说,这是接口,他本身没有实现,怎么比较性能,就算有,也是List<T>之类的类才会有的。public interface IEnumerable{ IEnumerator GetEnumerator();}public interface IEnumerator{ bool MoveNext(); object Current { get; } void Reset();}public interface IList : ICollection, IEnumerable{ // Methods int Add(object value); void Clear(); bool Contains(object value); int IndexOf(object value); void Insert(int index, object value); void Remove(object value); void RemoveAt(int index); // Properties bool IsFixedSize { get; } bool IsReadOnly { get; } object this[int index] { get; set; }}