我想知道在 C# 中存储一组字符串列表的最有效方法是什么。
背景
我的目标是存储有关“属性”的信息,例如Hold(object)
or Location(x,y,object)
。为此,我有一个字典,将属性名称映射到“一组值”。
例如,假设我为具有这些值的“位置”属性设置了“位置”
location -> ["1","2","robot1"]
["2","3","robot2"]
["2","5","key1"]
我想执行查询
DB["location"].Contains(["1","2","robot1"])
我不知道这是否可能,但这是为了让您了解我需要什么。:)
我做了什么
我必须经常修改和访问这些数据,所以我选择了 HashSet。但我有两个主要选择:
- 第一种是使用类似
HashSet<string[]>
. 问题是我认为 HashSet 找不到重复项,因为标准行为是通过引用比较数组。出于同样的原因,我不知道解决“检查 [a,b,c] 是否包含在集合中”问题的好方法。 - 第二个是使用类似的东西
HashSet<List<string>>
。但我不需要 List 来存储一组简单的元组。在我看来,这样一份简单的工作太过分了。
另一种方法是编写我自己的类来存储“参数”,但如果标准库中存在某些东西,我不想这样做。:)
谢谢 :)