业务需求,有时会需要比较两个数组,取一个数组中不包含另一个数组的值。代码如下:
1 string strs = string.Empty; 2 string[] strs1 = { "a", "b", "c", "d" }; 3 string[] strs2 = { "a", "b", "c", "f", "g" }; 4 5 Dictionary<string, string> map = new Dictionary<string, string>(); 6 7 for (int k = 0; k < strs1.Length; k++) 8 { 9 map.Add(strs1[k], ""); 10 } 11 12 for (int m = 0; m < strs2.Length; m++) 13 { 14 //数组一已经存在的值是否包含指定的键值,不包含的才取出来 15 if (!map.ContainsKey(strs2[m])) 16 { 17 strs += strs2[m] + ","; 18 } 19 } 20 //Response.Write("strs1字符串数组值:a, b, c, d<br/>" ); 21 Response.Write("strs1字符串数组跟字符串数组strs2比较,strs1字符串数组中不含有strs2数组中的有:" + strs); 22 23 map = new Dictionary<string, string>(); 24 25 for (int k = 0; k < strs2.Length; k++) 26 { 27 map.Add(strs2[k], ""); 28 } 29 30 for (int m = 0; m < strs1.Length; m++) 31 { 32 //数组一已经存在的直值是否包含指定的键值,不包含的才取出来 33 if (!map.ContainsKey(strs1[m])) 34 { 35 strs += strs1[m] + ","; 36 } 37 } 38 39 Response.Write("反之:" + strs);
方法比较笨,欢迎指正!如果您有更好的方法,欢迎加我QQ253267332!