gpt4 book ai didi

c# - 没有值的键值对容器

转载 作者:行者123 更新时间:2023-12-02 18:20:17 25 4
gpt4 key购买 nike

应该用什么容器来包含MyEnum类型的值列表,但是容器必须保证MyEnum的值在整个容器中最多只能出现一次,并且容器中的每个元素只包含1 值?如果我使用键值对容器,则分配给值部分的内存就会被浪费。

总结:基本上,什么容器与 C# 中的 List 相同,但区别只是保证一个值不会在容器中出现两次?

最佳答案

我相当确定您正在寻找 HashSet<T> 类:

HashSet<MyEnum> = new HashSet<MyEnum>();
// add them here

该集合的查找效率非常高,并确保所有项目都是唯一的。您可以尝试添加集合中已有的项目,然后 Add 返回false .

由于 enum 是一种值类型,因此您可以直接使用它。如果您想使用自定义类,您必须确保它覆盖 Equals + GetHashCode 。另一种选择是传递自定义 IEqualityComparer<T>this constructor .

关于c# - 没有值的键值对容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35154976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com