C#字典有多个值如何

时间:2015-09-01 18:23:03

标签: c# dictionary

我正在努力弄清楚如何修改这个字典,以便它可以接受一个键的两个值(如果需要)而不是一个值。在大多数情况下,键只有一个值,但偶尔会有两个值,应用程序不喜欢这样。相反,它会抛出“已添加相同键的项目”异常。我一直在研究关于字典的网络,因为我还在学习,但是我一直在努力,并且认为我可能会在这里要求有人指出我正确的方向。根据我的阅读,我应该使用动态或元组,但我在使用下面的代码实现它时遇到了麻烦。我知道这个网站上的答案也有类似的问题,但我很难将这些答案与这段代码联系起来。非常感谢更具体的例子。

./ansible.cfg

2 个答案:

答案 0 :(得分:0)

让您的值类型成为集合......

Dictionary<string, IEnumerable<string>>

你必须对这些值进行更多的工作,但是你可以存储尽可能多的唉。如果需要性能或唯一性,可以交换集合类型,例如hashset。

要在评论的上下文中使用它:

idDictionary.ForEach(id => WriteLog("Input Id = {0} - Matching record Id = {1}", id.Key, string.Concat(id.Value)));

将您的值设为IEnumerable String,然后使用string.Concat将它们全部放在一起。就个人而言,我更喜欢使用完整的符号Foreach循环并使用StringBuilder构建字符串。它更冗长,但更易读,您可以在值之间添加一个分隔符以使其可读。

答案 1 :(得分:-1)

为什么不使用IEnumerable&lt; KeyValuePair&lt; T,T&gt;&gt;而不是字典?