在.net 2.0中存储非唯一对?

Xai*_*oft 2 .net c# .net-2.0

我必须存储一对非唯一的字符串,所以我可能有类似的东西:

"A", "B" "A","C"

我不能使用Dictionary或HashTable,因为我没有唯一的密钥.我想过几个选择:

List<List<string>,List<string>> = new List<List<string>,List<string>>(); //Too long?
Run Code Online (Sandbox Code Playgroud)

创建一个类或结构(什么更好?)来保存我的对,然后将其存储在列表中,所以

class pairs
{

}

List<pairs> values = new List<pairs>();
Run Code Online (Sandbox Code Playgroud)

我还需要能够通过对进行枚举,所以我不需要关心查询,排序和比较.因此,最好使用最不具体的类型,例如Enumerable?

Bol*_*ock 10

你应该可以使用List<KeyValuePair<string, string>>.

KeyValuePair<TKey, TValue> 结构本身不需要唯一的密钥,即使您将它们收集在一个列表中也是如此.

如果您认为KVP在语义上不能满足您的需求,那么只需使用自定义类型即可.您的自定义类型是类还是结构无关紧要.