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

Ash*_*ani 2 c# arrays

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

小智 5

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

使用Array.Copy复制元素,这是一个O(n)操作,其中n是Count.

该方法是O(n)操作,其中n是Count.

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