l--*_*''' 0 .net c# dictionary
我们如何减去两个字典,得到具有差异的第三个字典?
我有一本字典Dictionary<string, int>()
:
+-------+----+
| alex | 10 |
| liza | 10 |
| harry | 20 |
+-------+----+
Run Code Online (Sandbox Code Playgroud)
从这个字典中,我想减去这个字典:
+-------+---+
| alex | 5 |
| liza | 4 |
| harry | 1 |
+-------+---+
Run Code Online (Sandbox Code Playgroud)
我正在寻找的结果是:
+-------+----+
| alex | 5 |
| liza | 6 |
| harry | 19 |
+-------+----+
Run Code Online (Sandbox Code Playgroud)
我们如何减去两个字典,得到具有差异的第三个字典?
我们可以假设它们将始终具有相同的密钥
在这种情况下,使用简单的foreach循环非常容易。完整示例:
var dict1 = new Dictionary<string, int>();
dict1.Add("alex", 10);
dict1.Add("liza", 10);
dict1.Add("harry", 20);
var dict2 = new Dictionary<string, int>();
dict2.Add("alex", 5);
dict2.Add("liza", 4);
dict2.Add("harry", 1);
var dict3 = new Dictionary<string, int>(dict1.Count); // Thanks, @mjwills!
foreach (var pair in dict1)
{
dict3.Add(pair.Key, pair.Value - dict2[pair.Key]);
}
Run Code Online (Sandbox Code Playgroud)
或使用ToDictionary
方法代替循环:
var dict3 = dict1.ToDictionary(p => p.Key, p => p.Value - dict2[p.Key]);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
126 次 |
最近记录: |