【发布时间】:2010-11-24 17:27:30
【问题描述】:
C# 中是否有任何数据结构类似于字典,但只有键而没有值。我基本上想要一个整数列表,我可以快速查找并查看列表中是否有某个值。当然,就我目前的使用而言,List 不会导致任何性能问题,但它似乎与我的代码正在执行的意图不太相符。
【问题讨论】:
标签: c# .net data-structures
C# 中是否有任何数据结构类似于字典,但只有键而没有值。我基本上想要一个整数列表,我可以快速查找并查看列表中是否有某个值。当然,就我目前的使用而言,List 不会导致任何性能问题,但它似乎与我的代码正在执行的意图不太相符。
【问题讨论】:
标签: c# .net data-structures
如果您的目标不是 .NET 3.5,Power Collections(开源)也提供了一个 Set 实现。
【讨论】:
如果 3.5 不是一个选项,您可以执行 Dictionary 之类的操作,然后简单地忽略该值。我在 2.0 中已经这样做了,我倾向于将值设置为与键相同。
【讨论】:
或者在值必须是唯一的情况下使用 SortedList
【讨论】:
是的,它被称为HashSet<T>,在 .NET 框架的 3.5 版中可用。如果您使用 .NET 2.0 版,则可以使用 Dictionary 并将值设置为 null。
【讨论】:
KeyedCollection,并将键提取器方法定义为值标识。