以下编程
IList接口可使用更多的方法。好比你看一个集合是否包含相应实体,IEnumerable不行,而IList里有Contains,相应的实现了IList的能够添加,删除相应实体。而IEnumerable不行。数组
可是这不是说IList就比IEnumerable好,就是由于IList实现的功能多,相对来讲限制大了。你看Object,任何类均可用做Object,这就是由于他简单。同理,能为IList表达的数据集,必定能为IEnumerable表达,而能为IEnumerable表达不必定能为IList表达。你能够想一想Linq To Object里的方法为何是对IEnumerable接口了而不是选择IList接口。app
性能对于咱们来讲不是问题,就算是问题,你问的性能是什么?是IEnumerable获得Current快仍是什么的?性能
那么我想说,这是接口,他自己没有实现,怎么比较性能,就算有,也是List<T>之类的类才会有的。ui
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; }
}this