📜  C# 合并 2 个字典 - C# (1)

📅  最后修改于: 2023-12-03 14:39:45.550000             🧑  作者: Mango

C# 合并 2 个字典

有时候我们需要将两个字典合并在一起。在 C# 中可以使用 Dictionary 类型来存储键值对。合并两个字典可以通过 Add() 方法将一个字典中的每一个键值对添加到另一个字典中,但是如果两个字典中存在相同的键,则会出现异常。

接下来我们将介绍 C# 中两种合并两个字典的方法。

方法一:使用 .NET 中的 Union 方法

可以使用 .NET Framework 提供的 Union 方法来合并两个字典,这个方法会返回一个新的字典,并且不会修改原有的字典。示例代码如下:

Dictionary<string, string> dict1 = new Dictionary<string, string>()
{
    { "key1", "value1" },
    { "key2", "value2" }
};
 
Dictionary<string, string> dict2 = new Dictionary<string, string>()
{
    { "key2", "value3" },
    { "key3", "value4" }
};
 
Dictionary<string, string> result = dict1.Union(dict2).ToDictionary(pair => pair.Key, pair => pair.Value);
 
foreach (KeyValuePair<string, string> kvp in result)
{
    Console.WriteLine($"{kvp.Key}: {kvp.Value}");
}

上述代码将输出以下内容:

key1: value1
key2: value2
key3: value4
方法二:使用 foreach 循环合并两个字典

我们也可以使用 foreach 循环来将一个字典中的每一个键值对添加到另一个字典中。示例代码如下:

Dictionary<string, string> dict1 = new Dictionary<string, string>()
{
    { "key1", "value1" },
    { "key2", "value2" }
};
 
Dictionary<string, string> dict2 = new Dictionary<string, string>()
{
    { "key2", "value3" },
    { "key3", "value4" }
};
 
foreach (KeyValuePair<string, string> kvp in dict2)
{
    if (!dict1.ContainsKey(kvp.Key))
    {
        dict1.Add(kvp.Key, kvp.Value);
    }
}
 
foreach (KeyValuePair<string, string> kvp in dict1)
{
    Console.WriteLine($"{kvp.Key}: {kvp.Value}");
}

上述代码将输出以下内容:

key1: value1
key2: value2
key3: value4

我们首先创建了两个字典 dict1dict2,然后使用 foreach 循环将 dict2 中的每一个键值对添加到 dict1 中。最后遍历 dict1 输出所有的键值对。

总的来说,在 C# 中合并两个字典有多种方法。可以根据实际需要选择最适合的方法来合并字典。代码也可以根据实际需求进行适当修改。