private static void Main(string[] args)
{
var query = Data();
}
private static IList<Employee> Data()
{
List<Employee> list = new List<Employee>();
list.Add(new Employee { Name = "test0", Age = 19 });
list.Add(new Employee { Name = "test1", Age = 33 });
list.Add(new Employee { Name = "test2", Age = 25 });
return list;
}
private static IEnumerable<Employee> Data()
{
List<Employee> list = new List<Employee>();
list.Add(new Employee { Name = "test0", Age = 19 });
list.Add(new Employee { Name = "test1", Age = 33 });
list.Add(new Employee { Name = "test2", Age = 25 });
return list;
}
当我运行上面的代码时,我在结果类型中没有看到任何不同的结果
IEnumerable
或IList
。使用它们有什么不同吗?如何决定使用哪种类型?
答案 0 :(得分:1)
IList
继承自IEnummerable
,因此它们基本相同,只是IList具有额外的功能。
这取决于您创建的数据是否应该使用IEnummerable或IList。
如果您只想将集合内容作为readonly进行迭代,那么 IEnumerable
是很好的。
IList
允许添加和删除内容(ICollection也是如此)并允许直接访问带索引的元素