[英]Performance concern: StringCollection vs List<String>
我想知道何時應該使用List <string>以及何時應該使用StringCollection 。
假設我必須處理大量的字符串(比如10mb的文本文件)。
我知道List <T>提供了比StringCollection更強大的功能。
但有時我會發現List <T> 很慢 ,例如告訴Gridview它的數據源是List <String> ...
那么有誰知道這些收藏品的優缺點,關於記憶中的速度和重量?
關於它們的功能,我相信每個人都會同意說List是最好的,所以我的問題與此無關。 考慮問題是關於Frameworks 4.0上的項目,因此兩者都可以使用。
我個人更喜歡使用List<string>
:
IEnumerable<T>
而不僅僅是IEnumerable
,因此支持LINQ 我會非常驚訝地發現StringCollection
明顯快於List<string>
- 看看你是否可以用數字來支持它。 我猶豫的唯一原因是GridView
可能會對StringCollection
進行硬編碼支持以使其快速使用該類型 - 但這對我來說聽起來不太可能。
在性能和效率方面,它們將非常相似。
List<string>
實際上可能會快一點。 它是預先通用的ArrayList的包裝器。 沒有拳擊/拆箱,但是還有一兩個額外的一步,IIRC。
StringCollection在.NET 2.0之前很方便,因為它被強類型化為字符串,非常常見的想要列表。 我建議現在使用List<string>
。 由於大多數框架和第三方程序集將使用它而不是StringCollection,這將:
List<string>
不是ArrayList
的包裝器
它是ArrayList
一個新實現,它通過一個數組(當count
大於它的長度時調整為double大小)和count
屬性來實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.