以下編程
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