C# 集合与lt;字符串>;和StringCollection

C# 集合与lt;字符串>;和StringCollection,c#,.net,collections,stringcollection,C#,.net,Collections,Stringcollection,正如标题所示,我想知道必须为其设置项类型的集合与仅为一种数据类型设置的所有专用集合之间的区别。我用哪一个重要吗 列表和集合之间也有区别吗 一般来说,字符串只是一个例子。强类型字符串集合是为了防止向上或向下转换开销,并针对字符串进行了优化 提供StringCollection的原因是为了提供更好的性能。然而,如果它们之间存在巨大的性能差异,我会感到惊讶 考虑使用StringCollection的以下建议: 使用StringCollection存储频繁更改且 需要在大块中检索 使用StringCo

正如标题所示,我想知道必须为其设置项类型的集合与仅为一种数据类型设置的所有专用集合之间的区别。我用哪一个重要吗

列表
集合
之间也有区别吗


一般来说,字符串只是一个例子。

强类型字符串集合是为了防止向上或向下转换开销,并针对字符串进行了优化

提供
StringCollection
的原因是为了提供更好的性能。然而,如果它们之间存在巨大的性能差异,我会感到惊讶

考虑使用StringCollection的以下建议:

  • 使用
    StringCollection
    存储频繁更改且 需要在大块中检索
  • 使用
    StringCollection
    将字符串数据绑定到数据网格。这 避免了在检索过程中将其向下转换为字符串的成本
  • 不要使用
    StringCollection
    对字符串进行排序或存储预排序 数据

由于最近的编辑,我才意识到这个答案。请注意#1的区别在于StringCollection是在泛型之前添加的,大多数代码倾向于使用存储对象的ArrayList,并且在使用时必须转换为正确的类型。因此,StringCollection是字符串的类型安全集合,并且在引入泛型时被完全淘汰。这里的大多数答案似乎与StringCollection和ArrayList或类似列表之间的差异有关,但StringCollection和泛型列表之间的差异在性能方面并不相关。