首页 新闻 会员 周边

两个数组比较,去掉重复的数据后生成第三个数组,这个怎么实现?

0
[已解决问题] 解决于 2012-03-13 08:59

string arr1 ["11","33","2","5555","9999"]

string arr2 ["11","9999"]

比较这两个数组,得到第三个数组(去掉两个数组中的重复数据)的结果是arr3["33","2","5555"]

那么要得到第三个数组应该怎么实现呢?

kdkler的主页 kdkler | 初学一级 | 园豆:154
提问于:2011-11-10 17:54
< >
分享
最佳答案
1
string[] arr1={"11","33","2","5555","9999","10"};
string[] arr2={"11","9999","1","2"};
List<string> arr=new List<string>();
foreach(string c1 in arr1)
{
arr.Add(c1);
}
foreach (string c2 in arr2)
{
if (!arr1.Contains(c2))
{
arr.Add(c2);
}
}
foreach(string c3 in arr)
{
Console.WriteLine(c3);
}
Console.ReadLine();
ForEvErNoMe | 菜鸟二级 |园豆:207 | 2011-11-10 19:45
其他回答(3)
0

class Program
{
static void Main(string[] args)
{
string[] arr1 = { "11", "33", "2", "5555", "9999" };
string[] arr2 = { "11", "9999" };
string[] arr3 = null;
List<string> list = new List<string>();
IEnumerable<string> arrs = arr1.Except(arr2);
foreach (string arr in arrs)
{
list.Add(arr);
}
arr3 = list.ToArray();
foreach (string a in arr3)
{
Console.Write("{0} ", a);
}
Console.ReadKey();
}
}

喬喬AI | 园豆:996 (小虾三级) | 2011-11-10 19:39
0

一句话的事情啊(C# 3.0以上):

string[] arr1 = { "11", "33", "2", "5555", "9999" };
string[] arr2 = { "11", "9999" };

string[] arr3 = arr1.Except(arr2).ToArray();
水牛刀刀 | 园豆:6350 (大侠五级) | 2011-11-10 19:51
string[] arr1 = { "11", "33", "2", "5555", "9999" };
string[] arr2 = { "11", "9999","44" };
  我要的到string[] arr3={"33","2","44","5555"}?
string[] arr3=arr1.Except(arr2).ToArray();还行吗? 求解释!!!
支持(0) 反对(0) Fred_Ade | 园豆:200 (初学一级) | 2011-11-11 10:42

@O|(: 如果你想写的很酷而不是很迫切的要高性能,那么依然可以一句话:

string[] arr3 = arr1.Union(arr2).Except(arr1.Intersect(arr2)).ToArray();

这样效率稍微有点低(影响不大),高效的写法就是两重循环。



支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2011-11-11 10:48

@水牛刀刀: o thak you!~.~

支持(0) 反对(0) Fred_Ade | 园豆:200 (初学一级) | 2011-11-11 11:20

感谢

支持(0) 反对(0) 最幸运的爷 | 园豆:200 (初学一级) | 2017-12-21 17:03
0

用linq to object实现只需要一个方法就可以了,相当的简单:string[] arr3 = arr1.Except(arr2).ToArray()。

悟行 | 园豆:12559 (专家六级) | 2011-11-11 13:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册