栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

调用ToList()会对性能产生影响吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

调用ToList()会对性能产生影响吗?

IEnumerable.ToList()

是的,

IEnumerable<T>.ToList()
确实会对性能产生影响,尽管可能只需要关注性能关键的操作,但它是 O(n) 操作。

ToList()
操作将使用
List(IEnumerable<T>collection)
构造函数。这个构造函数必须复制数组(通常是
IEnumerable<T>
),否则将来对原始数组的修改
T[]
也将在源上更改,这通常是不希望的。

我想重申的是,这只会对庞大的列表有所作为,复制内存块是一项非常快速的操作。

便捷提示,
As
vs
To

您会在LINQ中注意到有几种以

As
(如
AsEnumerable()
)和
To
(如
ToList()
)开头的方法。开头的方法
To
需要进行上述转换(即可能会影响性能),而开头的方法
As
则不需要,只需要进行一些强制转换或简单操作即可。

有关的其他详细信息
List<T>

List<T>
如果您有兴趣,这里有一些更详细的说明:)

A

List<T>
还使用一种称为动态数组的结构,该结构需要按需调整大小,此调整大小事件将旧数组的内容复制到新数组。因此,它从很小的地方开始,并在需要时增加尺寸。

这是的

Capacity
Count
属性之间的区别
List<T>
Capacity
指的是幕后数组的大小,
Count
是其中的项目数
List<T>
始终为
<=Capacity
。因此,当将一项添加到列表中时,将其增加到之后
Capacity
,的大小将
List<T>
增加一倍,并复制该数组。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/495425.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号