请教C#两个数组找出相同的和各自不同的数值
3个回答
展开全部
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
展开全部
我扔个砖吧,希望有高手出来扔玉。我用的是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。
希望有更好更高效的写法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
做两个for循环比较一下值就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询