我必须存储两个类似<string,string>
的值的列表,它不像key,value。我可以将它存储在对象或列表中,但最好的方法是存储这些数据结构吗?
我看到很少有人提到使用List<Tuple<string, string>>
,但使用上面的优势比其他数据结构如hashtable或object更有优势,
答案 0 :(得分:2)
如果您希望“键”对应多个值并有效地找到这些值,则可以使用Dictionary<string, List<string>>
。这将通过键将哈希表查找到值列表中,因此查找键的值将为O(1)。
如果您想要关联键和值,但不需要按键查找,那么您可以使用List<Tuple<string, string>>
或List<KeyValuePair<string, string>>
,如果这更适合您,您可以迭代并查看按索引,但搜索密钥将是O(N)。
答案 1 :(得分:0)
创建一个包含两个字符串属性的新类,并将其放在List
而不是Tuple<string, string>
或其他任何奇怪的构造中。主要优点是其他人都知道列表中的内容,你没有两个神奇的字符串。最干净,最简单的方法。