.NET Frameword 3.5 中使用的 C# 语言是 3.0,可以很方便地求交集、差集、并集。
int[] arr = new int[3];int[] arr2 = new int[3];// 省略为 arr、arr2 赋值int[] arr3 = arr.Intersect(arr2).ToArray(); // 交集int[] arr4 = arr.Except(arr2).ToArray(); // 差集int[] arr5 = arr.Union(arr2).ToArray(); // 并集(arr5 = arr1 + arr2)
顺便说一下
多个集合之间求交集时,注意下面的备注。
List list = new List ();for (int i = 0; i < Items.Count; i++){ if (i == 0) { // 注意第一项不能与 list 求交集,因为 list 还没有内容 list.AddRange(Items[i]); // 注意不是 list = Items[i]; continue; } list = list.Intersect(Items[i]).ToList(); if (list.Count <= 0) { break; // 后面的不用求了 }}// 注意 Items.Count 等于 0,或者各 Item 之间无交集,结果都是一样的
转载自:http://i.quanzhaowo.com/showtopic-332.aspx