【问题标题】:Best way to store List of <string,string> in csharp在 csharp 中存储 <string,string> 列表的最佳方法
【发布时间】:2017-08-04 01:08:00
【问题描述】:

我必须存储类似于&lt;string,string&gt; 的两个值的列表,它不像键、值。我可以将它存储在对象或列表中,但是存储此类数据结构的最佳方式是什么? 我见过很少有人提到使用List&lt;Tuple&lt;string, string&gt;&gt;,但是使用上面的比其他数据结构(如哈希表或对象)有什么优势,

【问题讨论】:

  • 好吧,List&lt;string, string&gt; 不存在。这是主要优势
  • c#有List()结构吗?
  • @AkashKC 你是对的,它绝对不是
  • 你可以使用List&lt;KeyValuePair&lt;string,string&gt;&gt;
  • 不是唯一的key 是……呃……一个不幸的名字,你不觉得吗?最终会导致混乱。

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


【解决方案1】:

如果您希望一个“键”对应多个值并有效地找到这些值,那么您可以使用Dictionary&lt;string, List&lt;string&gt;&gt;。这将通过键在值列表中查找哈希表,因此查找键的值将是 O(1)。

如果您想关联键和值但不需要按键查找,那么您可以使用 List&lt;Tuple&lt;string, string&gt;&gt;List&lt;KeyValuePair&lt;string, string&gt;&gt; 如果更适合您,您可以遍历并按索引查找,但是搜索一个键将是 O(N)。

【讨论】:

    【解决方案2】:

    创建一个具有两个字符串属性的新类并将其放入 List 而不是 Tuple&lt;string, string&gt; 或其他任何奇怪的构造。主要优点是其他人都知道列表中的内容,而您没有两个魔术字符串。最干净、最简单的方法。

    【讨论】:

      猜你喜欢
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 2013-05-07
      • 2014-04-10
      • 1970-01-01
      • 2011-07-02
      相关资源
      最近更新 更多