How to assign key=>value pairs in a Dictionary?
这是我的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | string[] inputs = new[] {"1:2","5:90","7:12","1:70","29:60"}; //Declare Dictionary var results = new Dictionary<int, int>(); //Dictionary<int, int> results = new Dictionary<int, int>(); foreach(string pair in inputs) { string[] split = pair.Split(':'); int key = int.Parse(split[0]); int value = int.Parse(split[1]); //Check for duplicate of the current ID being checked if (results.ContainsKey(key)) { //If the current ID being checked is already in the Dictionary the Qty will be added //Dictionary gets Key=key and the Value=value; A new Key and Value is inserted inside the Dictionary results[key] = results[key] + value; } else { //if No duplicate is found just add the ID and Qty inside the Dictionary results[key] = value; //results.Add(key,value); } } var outputs = new List<string>(); foreach(var kvp in results) { outputs.Add(string.Format("{0}:{1}", kvp.Key, kvp.Value)); } // Turn this back into an array string[] final = outputs.ToArray(); foreach(string s in final) { Console.WriteLine(s); } Console.ReadKey(); |
我想知道在字典中分配键=>值对之间是否存在差异。
方法1:
1 | results[key] = value; |
号
方法2:
1 | results.Add(key,value); |
在方法1中,没有调用函数add(),而是名为"results"的字典通过在方法1中声明代码来指定以某种方式设置键值对,我假设它以某种方式自动在字典中添加键和值,而不调用add()。
我这么问是因为我现在是一名学生,我现在正在学习C。
先生/女士,您的回答将非常有帮助,非常感谢。谢谢你++
1 2 3 4 | set { this.Insert(key, value, false); } |
1 2 3 4 | public void Add(TKey key, TValue value) { this.Insert(key, value, true); } |
号
唯一的区别是,如果第三个参数为真,那么如果该键已经存在,它将抛出异常。
旁注:反编译器是.NET开发人员的第二好朋友(当然,第一个是调试器)。这个答案来自于在伊尔斯比打开
如果键存在于1)中,则覆盖该值。但在2)中,它会抛出一个异常,因为键必须是唯一的