.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<int> list = new List<int>(); 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