Adding a dictionary to another
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicates:
Merging dictionaries in C#
What's the fastest way to copy the values and keys from one dictionary into another in C#?
号
我有一本字典,里面有一些值,比如:
1 | Animals <string, string> |
我现在收到另一本类似的字典,说:
1 | NewAnimals <string,string> |
号
我怎样才能把整个新动物词典附加到动物上呢?
1 2 | foreach(var newAnimal in NewAnimals) Animals.Add(newAnimal.Key,newAnimal.Value) |
注意:这会在重复键上引发异常。
或者,如果您真的想使用扩展方法路由(我不会),那么您可以定义一个通用的
1 2 3 4 5 6 7 8 9 |
。
(为字典添加重复键)
创建一个扩展方法,您很可能希望多次使用它,这样可以防止重复的代码。
实施:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public static void AddRange<T, S>(this Dictionary<T, S> source, Dictionary<T, S> collection) { if (collection == null) { throw new ArgumentNullException("Collection is null"); } foreach (var item in collection) { if(!source.ContainsKey(item.Key)){ source.Add(item.Key, item.Value); } else { // handle duplicate key issue here } } } |
用途:
1 2 3 4 |
。
最明显的方法是:
1 2 3 | foreach(var kvp in NewAnimals) Animals.Add(kvp.Key, kvp.Value); //use Animals[kvp.Key] = kvp.Value instead if duplicate keys are an issue |
由于
1 2 3 4 | var animalsAsCollection = (ICollection<KeyValuePair<string, string>>) Animals; foreach(var kvp in NewAnimals) animalsAsCollection.Add(kvp); |
号
很遗憾,类没有像e
简短的回答是,你必须循环。
有关此主题的详细信息:
用C语言将值和键从一个字典复制到另一个字典的最快方法是什么?
你可以用前臂把所有的动物圈起来,放到新动物身上。