gpt4 book ai didi

c# - 合并两个字典 Dictionary>

转载 作者:行者123 更新时间:2023-11-30 17:55:38 27 4
gpt4 key购买 nike

这与这个问题有点相关,关于如何在 C# 中合并两个字典。提供了一个优雅的 Linq 解决方案,很酷。

但是,该问题与 Dictionary<Object1, Object2> 有关,而我有一本字典,其中的值为 Dictionary<string, Object> .

我正在寻找合并丝束的解决方案 Dictionary<string, Dictionary<string, Object>> ,具有以下要求:

  • 不在两个字典的字典结果中复制键,
  • 对于每个字典,我认为按 KEY 分组可以是解决方案的一部分,但是在...

    internal static Dictionary<string, Dictionary<string, object>> OperationDic(Dictionary<string, Dictionary<string, object>> a, Dictionary<string, Dictionary<string, object>> b, string operation)`
    {
    switch (operation)
    {
    case "+":
    var result = a.Concat(b).GroupBy(d => d.Key).ToDictionary (d => d.Key, d => d.First().Value);
    return result;
    default:

    throw new Exception("Fail ...");
    }
    }

最佳答案

我不太清楚你想要什么。这试图合并两个词典:

    // first copy everything from a
var result = new Dictionary<string, Dictionary<string, object>>(a);

// now check to see if we can add stuff from b
foreach (var entryOuter in b)
{
Dictionary<string, object> existingValue;
if (result.TryGetValue(entryOuter.Key, out existingValue))
{
// there's already an entry, see if we can add to it
foreach (var entryInner in entryOuter.Value)
{
if (existingValue.ContainsKey(entryInner.Key))
throw new Exception("How can I merge two objects? Giving up.");
existingValue.Add(entryInner.Key, entryInner.Value);
}
}
else
{
// new entry
result.Add(entryOuter.Key, entryOuter.Value);
}
}

return result;

您可能想要添加对 null 的检查。 abexistingValue(如果存在)可能是 null

关于c# - 合并两个字典 Dictionary<string, Dictionary<string, Object>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14851510/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com