请教C#两个数组找出相同的和各自不同的数值

 我来答
仙戈雅3n
2016-11-14 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:897万
展开全部
  static void Main(string[] args){
    int[] A = { 1, 2, 3, 4, 5 };
    int[] B = { 2, 4, 6 };

    IEnumerable<int> en = A.Intersect(B);// A∩B 集合A与集合B的交集
    foreach (var item in en)
    {
      Console.WriteLine(item);
    }

    IEnumerable<int> en2 = A.Concat(B).Except(A.Intersect(B));// 容斥原理
    foreach (var item in en2)
    {
       Console.WriteLine(item);
    }
 }

 

说明,如果楼主不懂容斥原理,请看百度百科:http://baike.baidu.com/link?url=rrcJEUHHoM5wxNGhQ1_ZJnBcmiTl-v9dMbk7YASbFhG3pm2Mktlb8n_q8r-LkDE3XoljmXpBIJr2AvJ1j-BADmAYJUiwdxDmt7G9gNaoO6CQ1xzpEpier-tsapSZAiu3

百度网友154139e
2016-11-14 · TA获得超过413个赞
知道小有建树答主
回答量:295
采纳率:50%
帮助的人:250万
展开全部

我扔个砖吧,希望有高手出来扔玉。我用的是Linq的交集与差集求法。

int[] a = new int[5] { 1, 2, 3, 4, 5 };
int[] b = new int[5] { 2, 3, 5, 6, 7 };
Console.WriteLine("两数组都有的元素(交集)");
foreach (var k in a.Intersect(b))
{
    Console.WriteLine(k);
}
Console.WriteLine("两数组不同的的元素(差集)");
var s = a.Except(b).ToList();
s.AddRange(b.Except(a).ToList());
foreach (var k in s)
{
    Console.WriteLine(k);
}

Intersect就是交集,两个数组都有的元素,然后遍历一下输出。

Except差集,这里要差两次,一次是a对b,另一次是b对a。

希望有更好更高效的写法。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sky496967173
2016-11-14 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4060
采纳率:80%
帮助的人:608万
展开全部
做两个for循环比较一下值就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式