关于List<T>,还是是懂非懂:
List<T>泛型类,表示可通过索引访问的对象的强类型列表。提供用于对列表进行搜索、排序和操作的方法。
public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
IList<T> 泛型接口,表示可按照索引单独访问的一组对象。
ICollection<T> 泛型接口,定义操作泛型集合的方法。
IEnumerable<T> 泛型接口,公开枚举数,该枚举数支持在指定类型的集合上进行简单迭代。
IList 接口,表示可按照索引单独访问的对象的非泛型集合。
ICollection 接口,定义所有非泛型集合的大小、枚举数和同步方法。
IEnumerable 接口,公开枚举数,该枚举数支持在非泛型集合上进行简单迭代。
所以,以下都可以:
IList<Company> companyy1 = new List<Company>();
ICollection<Company> companyy2 = new List<Company>();
IEnumerable<Company> companyy3 = new List<Company>();
IList companyy4 = new List<Company>();
ICollection companyy5 = new List<Company>();
IEnumerable companyy6 = new List<Company>();