在csharp

时间:2017-03-13 21:06:05

标签: c# asp.net generics c#-4.0 collections

我必须存储两个类似<string,string>的值的列表,它不像key,value。我可以将它存储在对象或列表中,但最好的方法是存储这些数据结构吗? 我看到很少有人提到使用List<Tuple<string, string>>,但使用上面的优势比其他数据结构如hashtable或object更有优势,

2 个答案:

答案 0 :(得分:2)

如果您希望“键”对应多个值并有效地找到这些值,则可以使用Dictionary<string, List<string>>。这将通过键将哈希表查找到值列表中,因此查找键的值将为O(1)。

如果您想要关联键和值,但不需要按键查找,那么您可以使用List<Tuple<string, string>>List<KeyValuePair<string, string>>,如果这更适合您,您可以迭代并查看按索引,但搜索密钥将是O(N)。

答案 1 :(得分:0)

创建一个包含两个字符串属性的新类,并将其放在List而不是Tuple<string, string>或其他任何奇怪的构造中。主要优点是其他人都知道列表中的内容,你没有两个神奇的字符串。最干净,最简单的方法。