日期:2014-05-17  浏览次数:20998 次

C#中如何将2个数组中不同元素提取到另一个数组?
本帖最后由 fanysans 于 2013-06-29 17:45:32 编辑
C#中如何将2个数组中不同元素提取到另一个数组?

int A[10]={1,2,3,4,5,6,7,8,9,10};
int B[10]={2,3,4,5,6,6,19,20,21,21};  
怎么提取A,B中不同的元素呢  求代码
C# 数组

------解决方案--------------------

 int[] A=new int[]{1,2,3,4,5,6,7,8,9,10};
int[] B=new int[]
    {2,3,4,5,6,6,19,20,21,21};
int[] C=A.Except(B).Union(B.Except(A)).ToArray();
//int[] D = A.Union(B).Except(A.Intersect(B)).ToArray();


------解决方案--------------------
sorry! 少写了一行代码:
var A = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var B = new int[] { 2, 3, 4, 5, 6, 6, 19, 20, 21, 21 };
var x = new List<int>();
foreach (var a in A)
{
    if (!x.Contains(a))
        x.Add(a);
}
foreach (var b in B)
{
    if (!x.Contains(b))
        x.Add(b);
    else
        x.Remove(b);
}
var C = x.ToArray();