c# - 创建一个列表,然后将其转换为数组

标签 c# arrays

数组非常快,但另一方面你不能向数组添加任何东西列表非常方便你可以添加新项目而不用担心但它们要慢得多 我首先使用列表添加我的项目,然后通过 MyList.ToArray() 将其转换为数组,然后处理数组中的数据。现在我想知道这在速度方面是否真的有效?或者我只是通过转换为数组浪费了更多时间?

最佳答案

MSDN 说 ToArray 是 O(N),其中 N 是计数:https://msdn.microsoft.com/en-us/library/x303t819%28v=vs.110%29.aspx

The elements are copied using Array.Copy, which is an O(n) operation, where n is Count.

This method is an O(n) operation, where n is Count.

因此,您基本上要处理列表两次:一次用于 ToArray 调用,另一次在下一个循环中实际处理列表。在大多数情况下,删除 ToArray 可能比进行转换更高效。

关于c# - 创建一个列表,然后将其转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29386398/

相关文章:

c# - Web 服务客户端和压缩

c# - 在 Entity Framework 中添加鉴别器列作为唯一索引的一部分

c++ - 整数数组中每个元素的数字总和

c++ - 如何在 C++ 中访问 c​​onst char **& 中的数据?

javascript - 在 Javascript 中将字符串转换为二维数组的有效方法

Javascript 在对象中添加项目

c# - BeginInvoke 内存泄漏

C#获取电脑MAC地址 "OFFLINE"

c# - 是否有任何 .net 语言公开 'methodof' 或 'fieldof'

c++ - 我可以保证以负偏移访问指针吗?