本帖最后由 fanysans 于 2013-06-29 17:45:32 编辑

解决方案 »

  1.   

    int[] result = a.Except(b).Union(b.Except(a)).ToArray();
      

  2.   


     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();
      

  3.   

    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);
    }
    var C = x.ToArray();
    编程其实很简单,关键是你的脑袋要能把大白话也说的清晰,这就需要你的语文课成绩不是很糟糕。
      

  4.   

    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();
      

  5.   

    唉,晕死了,刚看见,你的 B 数组里自己还有重复数据?那么需要写成 foreach (var a in A.Distinct())  和 foreach (var b in B.Distinct()) 之类的哦。
      

  6.   

    呵呵忙死了,还得注销然后重新登录,才能穿上马甲。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>(A.Distinct());
    foreach (var b in B.Distinct())
    {
        if (!x.Contains(b))
            x.Add(b);
        else
            x.Remove(b);
    }
    var C = x.ToArray();
    不写了,再写就变笨了。
      

  7.   

    var x = A.Except(B);
    var x1 = B.Except(A);
    var C = x.Concat(x1);
      

  8.   

    如果想要高效率解决这个问题,可以用HashSet,HashSet<int>.ExceptWith方法可以直接高效率的提取不同的元素,
      

  9.   

    虽然调用HashSet<int>.ExceptWith方法之前需要把数组元素装入HashSet中,这样程序没有上面几位高手那么简洁,但速度绝对更快,在元素非常多的时候可以考虑这个方法,