gpt4 book ai didi

c# - IList 与 IEnumerable。 IList 或 IEnumerable 哪个更有效

转载 作者:可可西里 更新时间:2023-11-01 08:06:01 25 4
gpt4 key购买 nike

使方法返回 IList<T> 的更有效方法是什么?或 IEnumerable<T>

IEnumerable<T>它是不可变的集合,但是 IList<T>可变并包含许多有用的方法和属性。

IList<T>IEnumerable<T>它只是引用副本:

IList<T> l = new List<T>();
IEnumerable<T> e = l;

IEnumerable<T>List<T>我们需要迭代每个元素或调用 ToList()方法:

IEnumerable<T>.ToList(); 

或者可以通过IEnumerable<T>List<T>在其构造函数中某处执行相同迭代的构造函数。

List<T> l = new List<T>(e);

您认为哪种情况效率更高?您在实践中更喜欢哪个?

最佳答案

就效率而言,两者都是接口(interface),因此效率将取决于您返回的实际具体类。根据经验,您应该始终返回适用于此方法使用者的对象层次结构中最高的类型。在你的情况下 IEnumerable<T> .如果该类的使用者需要添加元素、按索引访问元素、删除元素,您最好使用 IList<T>。 .

所以在编程中一如既往:视情况而定 :-)

关于c# - IList<T> 与 IEnumerable<T>。 IList<T> 或 IEnumerable<T> 哪个更有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3536589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com