首页 新闻 会员 周边 捐助

C# 匹配两个数组不同的值除遍历

0
[已解决问题] 解决于 2011-08-16 09:50

比如有这么两个数组

var arr1=new string[]{'1','2','3','4','5'}

var arr2=new string[]{'1','2','3','4'}

可以看出是arr2比arr1少了个'5'

但是当数组长度很长的时候就没法用肉眼区分了,所以有什么什么方法可以快速查找到

就是可以查询一个数组比另一个多了哪些

sixserve的主页 sixserve | 初学一级 | 园豆:21
提问于:2011-08-03 15:45
< >
分享
最佳答案
0

var arr1 = new string[] { "1", "2", "3", "4", "5" };
var arr2
= new string[] { "1", "2", "3", "4" };
var result
= arr1.ToList().Where(s => !arr2.ToList().Contains(s));
result.ToList().ForEach(
s
=>Console.WriteLine(s)
);

artwl | 专家六级 |园豆:16736 | 2011-08-03 16:05
这样数据量大的时候效率会很低
sixserve | 园豆:21 (初学一级) | 2011-08-03 16:11
其他回答(3)
0

那你两个数组会不会存在不一样的元素啊?

例如:var arr1=new string[]{'1','2','3','4','5'}

var arr2=new string[]{'1','2','3','6'}

王清清 | 园豆:281 (菜鸟二级) | 2011-08-03 16:28
不会不一样,就是一个数组会比另一个多几个
支持(0) 反对(0) sixserve | 园豆:21 (初学一级) | 2011-08-03 16:59
那顺序一致吗 ?
支持(0) 反对(0) 王清清 | 园豆:281 (菜鸟二级) | 2011-08-03 17:08
如果不一致的话
我是在vs2003里运行的,是成功的!
你可以根据你的需求稍微改一下。
string[] arr1=new string[]{"1","2","3"};
string[] arr2=new string[]{"1","2","3","6","10","22"};
string[] arr3=new string[arr1.Length];
int q=0;
string[]arr4;
string[] arr5;
arr4=arr1;
arr5=arr2;
if(arr1.Length {
arr4=arr2;
arr5=arr1;
}
if(arr1.Length!=arr2.Length)
{
for(int i=0;i {
for(int j=0;j {
if(arr4[i]==arr5[j])
{
break;
}
if((j+1)==arr5.Length)
{
string aa=arr4[i];
arr3[q]=aa;
q++;
}
}
}
}
for(int i=0;i {

Response.Write(arr3[i]+",");
}
支持(0) 反对(0) 王清清 | 园豆:281 (菜鸟二级) | 2011-08-04 10:03
0

请问少的数组 是否与  多的数组的   下标与值都是相等 除开多的?如果是的话  那就简单的很

杯具程序员 | 园豆:1718 (小虾三级) | 2011-08-03 16:46
不会不一样,就是一个数组会比另一个多几个
支持(0) 反对(0) sixserve | 园豆:21 (初学一级) | 2011-08-03 16:59
那就简单塞
if(arr1.Length>arr2.Length)
{
for (int i = arr2.Length; i < arr1.Length; i++)
{

}
}
else
{
for (int i = arr1.Length; i < arr2.Length; i++)
{

}
}
支持(0) 反对(0) 杯具程序员 | 园豆:1718 (小虾三级) | 2011-08-03 17:06
其实就是
for(int i=少的数组的长度;i<多的数组长度;i++)
一下内容你懂得
支持(0) 反对(0) 杯具程序员 | 园豆:1718 (小虾三级) | 2011-08-03 17:09
之间的就是你想要的 你看是否明白?
支持(0) 反对(0) 杯具程序员 | 园豆:1718 (小虾三级) | 2011-08-03 17:10
0

地段一点的执行都是遍历,只不过是Lambad表达式封装好了不需要我们自己写遍历的方法了而已。所以,基本无解。

う三余无梦生 | 园豆:201 (菜鸟二级) | 2011-08-03 17:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册