2011-04-18 78 views
0

可能重複:
Is it better to call ToList() or ToArray() in LINQ queries?哪一個是更快的字符串[]或列表<string>

嗨,

我有下面的代碼

static void Main(string[] args) 
     { 
      const string FileName = @"c:\words"; 
      HashSet<string> wordLookup = new HashSet<string>(File.ReadAllLines(FileName), StringComparer.InvariantCultureIgnoreCase); 
      List<string> wordList1 = wordLookup.ToList(); 
      string[] wordList2 = wordLookup.ToArray(); 
     } 

可以在任何一個告訴哪一個是更快

List<string> wordList1 = wordLookup.ToList(); 

string[] wordList2 = wordLookup.ToArray(); 
+1

而且您並不在意如何快速且簡單地查找項目,複製/克隆,插入/刪除項目等? – 2011-04-18 15:56:05

+2

編寫一個循環並使用StopWatch類。 – 2011-04-18 15:56:06

+2

我所能做的只是感嘆。這兩行代碼的工作速度都比我感嘆的要快。 – BoltClock 2011-04-18 15:56:09

回答

1

List<T>使用陣列內部,所以我的猜測是,他們會同樣快。然而,這只是無關緊要 - 使用任何使你的代碼更清晰的東西。

0

我最初的反應是說ToArray會更快,但老實說,唯一能告訴的就是自己來定時。

+1

這個更好是一個評論... – 2011-04-18 15:58:09

+2

我最初的反應會是相反的。在這兩種情況下,數組都將被重複分配(長度隨時滿),因爲源被枚舉。對於ToList,重新分配的數組將在List內部,並且生成的List可以按原樣返回。就ToArray而言,通常需要額外的步驟將結果數據複製到正確長度的數組中。 – Joe 2011-04-18 16:42:25

相關問題