我在 Session 中有一个 ArrayList,比如说[305,306,380]
。
提交时,用户选择我将它们保存在第二个数组中的其他产品,例如[390,305,480,380]
我怎样才能在哪里制作另外三个数组
所有新值
[390,480]
两个列表中的所有值
[305,380]
list1 中不在 list2 中的所有值
[306]
我在 ASP.NET 4.0 C# 中需要这个
您可以使用ArrayList.ToArray()
针对您的数组列表获取数组。然后使用 LINQ,您可以通过Except
方法轻松获得所需的内容Intersect
,例如
array2.Except(array1)
array1.Except(array2)
array1.Intersect(array2)
编辑:完整代码
根据您的要求,您的代码可能如下所示;
ArrayList arrayList1 = new ArrayList(new int[] { 305, 306, 380 });
ArrayList arrayList2 = new ArrayList(new int[] { 390, 305, 480, 380 });
int[] array1 = (int[])arrayList1.ToArray(typeof(int));
int[] array2 = (int[])arrayList2.ToArray(typeof(int));
//1. All New values
int[] uniqueInArray2 = array2.Except(array1).ToArray();
//2. Common values
int[] commonValues = array1.Intersect(array2).ToArray();
//3. Values of arrayList1 which are not in arrayList2
int[] uniqueInArray1 = array1.Except(array2).ToArray();
按以下方式使用HashSet:
var first = new HashSet<int>();
first.Add(...);
var second = ...;
1. second.ExceptWith(first);
2. first.IntersectWith(second);
3. first.ExceptWith(second);