簡體   English   中英

性能問題:StringCollection與List <String>

[英]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
  • SilverLight支持它
  • 對於大多數開發者來說,它更具慣用性(IMO)

我會非常驚訝地發現StringCollection明顯快於List<string> - 看看你是否可以用數字來支持它。 我猶豫的唯一原因是GridView可能會對StringCollection進行硬編碼支持以使其快速使用該類型 - 但這對我來說聽起來不太可能。

在性能和效率方面,它們將非常相似。

List<string>實際上可能會快一點。 它是預先通用的ArrayList的包裝器。 沒有拳擊/拆箱,但是還有一兩個額外的一步,IIRC。

StringCollection在.NET 2.0之前很方便,因為它被強類型化為字符串,非常常見的想要列表。 我建議現在使用List<string> 由於大多數框架和第三方程序集將使用它而不是StringCollection,這將:

  • 避免大量的鑄造
  • 避免一些混亂。 其他(特別是較新的)開發人員會不斷地想知道你使用StringCollection的原因是什么。

List<string>不是ArrayList的包裝器

它是ArrayList一個新實現,它通過一個數組(當count大於它的長度時調整為double大小)和count屬性來實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM