上週我收到一些代碼並被要求改進性能。所以從這項工作開始,不久我就看到他們使用了很多對象來存儲對象的大集合(10000到100000個以上的對象)。在代碼中,出於性能原因,他們使用HashSet<T>
。HashSet的性能<T>和Linq查詢
他們所做的唯一事情就是用對象填充HashSet,然後我們使用一些Linq在多個集合之間執行查詢。大多數查詢將加入1或n個HashSet,或從First()
或Where()
中檢索集合中的特定對象。
我想知道如果我們獲得任何性能優勢與正常List<T>
相比?因爲它們在代碼中使用的所有Linq擴展方法都是爲IEnumerable<T>
而編寫的。
在互聯網上,很多文章都說List會更快,但有人說HashSet處理的巨大集合比List更好。
希望有人能給我更多的建議。
感謝。
難道你不容易寫一個測試比較這兩個性能? – row1
我還會注意到HashSet沒有排序 - 除非你需要一個任意元素,或者已經過濾除了一個元素之外的所有元素,否則考慮它的'First'元素是錯誤的。 – Kobi
你的方法是非常沒有生產力的。使用分析器。 –