程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 關於List.ToArray()方法的效率測試,list.toarray效率

關於List.ToArray()方法的效率測試,list.toarray效率

編輯:關於.NET

關於List.ToArray()方法的效率測試,list.toarray效率


之前一直認為因為List內部實現是數組,ToArray的實現只是將數組返回出去而已。

今天測了一下發現並不是那樣

 

var a = new List<int>();

for (int i = 0; i < 10000; i++)
{
    a.Add(i);
}

DebugHelper.StartWatch();

foreach (var i in Enumerable.Range(0, 10000))
{
    a.ToArray();
}

DebugHelper.StopWatch();

 

1萬數量大小的List,調用1萬次ToArray的時間消耗是417ms左右。

報著疑惑看了下源碼,沒想到它是把內部數組復制了一份再返回

public T[] ToArray()
{
    T[] array = new T[this._size];
    Array.Copy(this._items, 0, array, 0, this._size);
    return array;
}

 

看來對於重復性操作,可以考慮直接緩存成全局變量,或者直接用List作為參數。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved