考虑以下字典:
Dictionary<string, double> dict1 = new Dictionary<string, double>()
Dictionary<string, double> dict2 = new Dictionary<string, double>()
两个字典具有完全相同的键,但值不同。我想通过以下方式合并两个字典:创建一个具有相同键的新字典dict1
and dict2
,其中该值是由匹配值组成的数组dict1
,以及匹配值dict2
,对于每个键。
我可以轻松地在循环中做到这一点,但我希望有一种更有效的方法来做到这一点。
任何帮助,将不胜感激!谢谢你!
这假设它们确实具有相同的密钥:
var merged = dict1.ToDictionary(pair => pair.Key,
pair => new[] { pair.Value, dict2[pair.Key] });
或者创建一个Dictionary<string, Tuple<double, double>>
var merged = dict1.ToDictionary(pair => pair.Key,
pair => Tuple.Create(pair.Value, dict2[pair.Key]));
或者,如果您要在同一方法中使用匿名类型,则可以使用匿名类型来使其更清晰:
var merged = dict1.ToDictionary(pair => pair.Key,
pair => new { First = pair.Value,
Second = dict2[pair.Key]) });
正如评论中所指出的,这些仍然在内部循环 - 它们不会更多高效的比自己编写循环更好,但读起来更好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)