Это должно сделать это:
Dictionary<string, string[]> dict1 = new Dictionary<string, string[]>();
Dictionary<string, string[]> dict2 = new Dictionary<string, string[]>();
Dictionary<string, List<string>> combined = new Dictionary<string, List<string>>();
foreach (var pair in dict1) combined.Add(pair.Key, new List<string>(pair.Value));
foreach (var pair in dict2)
{
List<string> list;
if (!combined.TryGetValue(pair.Key, out list)) combined.Add(pair.Key, list = new List<string>());
list.AddRange(pair.Value);
}
Если вы действительно хотите получить результат как Dictionary<string, string[]>
, вы можете добавить его в конец:
Dictionary<string, string[]> combinedArray = new Dictionary<string, string[]>();
foreach (var pair in combined) combinedArray.Add(pair.Key, pair.Value.ToArray());