【发布时间】:2012-07-19 20:00:23
【问题描述】:
这似乎是一件奇怪的事情,但忽略了这一点,是否有一种简洁的方式将List<string> 转换为Dictionary<string, string>,其中字典中的每个键值对只是列表中的每个字符串。即
List = string1, string2, string3
Dictionary = string1/string1, string2/string2, string3/string3
我已经进行了大量搜索,仅在 Stackoverflow 上就有几十个示例,它们是在相反的方向上做的,但不是这样。
这样做的原因是我有两个第三方组件,并且无法更改它们。一个以List<string> 的形式返回电子邮件地址列表,另一个则发送To 参数为Dictionary<string, string> 的电子邮件。字典的键是电子邮件地址,值是他们的真实姓名。但是,我不知道真实姓名,但如果您将真实姓名也设置为电子邮件地址,它仍然有效。因此,我为什么要将 List 转换为 Dictionary<string, string>。有很多方法可以做到这一点。列表中的 foreach 循环将 kvp 添加到字典中。但我喜欢简洁的代码,想知道是否有单行解决方案。
【问题讨论】:
-
我有一个更好的解决方案,因为你的正当理由,老实说。
-
您可能想查看 HashSet 是否满足您的要求,而不是使用 Dictionary。
-
比上面的评论更直接:如果你解释你想要这个的原因,有人可能会提出更好的解决方案。
-
没有更好的解决方案。我有一个第三方组件,它返回一个字符串列表,这些是电子邮件地址。我有另一个第三方组件发送电子邮件,它通过 Dictionary
键是电子邮件地址,值是收件人的真实姓名。但是,真实姓名也可以只是电子邮件地址,这就是我想将 List 的原因转换为 Dictionary
标签: c# list dictionary