我有兩本字典。如果dict2中的值相同,那麼我們必須添加來自dict1的匹配鍵的值,並在結果字典中生成一個結果,如下所示。如何加入兩個字典?
**dict1** **dict2**
Id value Id value
24379 348 24379 270451
24368 348 24368 270451
24377 90 24377 270450
24366 90 24366 270450
24369 10 24369 270450
24300 25
Result:
24379 696
24368 696
24377 190
24366 190
24369 190
我有以下的邏輯,並希望優化此解決方案:
Dictionary<int, int> result = new Dictionary<int, int>();
foreach (int itemKey in dict1.keys)
{
result.add (itemKey, dict1.Where(a => dict2.ContainsKey(a.key)
&& dict2.ContiansKey(itemKey)
&& dict2[a.key] == dict2[itemKey])
.Sum(a => a.value);
}
*接下來我們要添加值從dict1匹配的鑰匙*。我不明白你期望的結果。看起來你正在乘以兩倍,而不是一起加入。 –
@PatrickHofman'24379'和'24368'的'dict2'值都是'270451',所以OP將從'dict1'加起來,這兩個值恰好都是'348'。 – dasblinkenlight
是什麼樣的設計!它真的搞砸了@dasblinkenlight –