在 C# 中是不是有像 Dictionary<> 这样的类,但只有键,没有值?
Posted
技术标签:
【中文标题】在 C# 中是不是有像 Dictionary<> 这样的类,但只有键,没有值?【英文标题】:Is there a class like Dictionary<> in C#, but for just keys, no values?在 C# 中是否有像 Dictionary<> 这样的类,但只有键,没有值? 【发布时间】:2011-01-24 08:27:21 【问题描述】:我想另一种表达方式是“C# 中是否有类似List<>
的类,但已针对检查是否存在特定值进行了优化?”我确信对于一小组值List<>.Contains
可能没问题,但是如果我有一组数千或数百万个值并想找出其中是否包含某个值呢?
我过去通过创建Dictionary<object, int>
并将每个键的值设置为0 来实现这种事情,但这感觉非常笨拙。现在有了 Stack Overflow,我的愚蠢问题可以转化为数千人(甚至数十人)的教育。所以就在这里!
我什至不确定这样的类会被称为什么,除了 Set,所以显然对该主题的搜索一直......具有挑战性:)
【问题讨论】:
C# Data Structure Like Dictionary But Without A Value 的可能重复项 【参考方案1】:尝试使用HashSet<T>
类。
编辑:我花了很长时间做你所做的事情,直到我在阅读博客时偶然发现了这门课。
【讨论】:
此外,在 .NET 4 中,此类现在实现了新的ISet<T>
接口,以及它的新表亲 SortedSet<T>
,它是相同的,但具有顺序语义。
回到 .NET 1.0 和 2.0 的黑暗时期,我们刚刚创建了一个基本上像 HashSet 一样工作的类,但在下面使用了一个 myHash["mykey"]
。以上是关于在 C# 中是不是有像 Dictionary<> 这样的类,但只有键,没有值?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# 中将 Dictionary<string, object> 转换为 Dictionary<string, string>