问题描述
大家好,想请教个问题,例如现在有一个数组:string[]strName={"DS","JZ","LH","HS","DZ"};和另外一个数组:string[]strName2={"DS","JZ","LH"};现在问题是如何得出这两个数组比较后的差异结果,就是如上面的例子:得出strName和strName2比较的结果为:"HS","DZ",把相同的取掉,刚要不同的,不会做了,请大家帮忙,谢谢!
解决方案
解决方案二:
varresult=strName.Except(strName2).ToArray();
解决方案三:
引用楼主huacent2012的回复:
大家好,想请教个问题,例如现在有一个数组:string[]strName={"DS","JZ","LH","HS","DZ"};和另外一个数组:string[]strName2={"DS","JZ","LH"};现在问题是如何得出这两个数组比较后的差异结果,就是如上面的例子:得出strName和strName2比较的结果为:"HS","DZ",把相同的取掉,刚要不同的……
您好:Except函数好像没有?
解决方案四:
linqIntersect(相交)string[]strName={"DS","JZ","LH","HS","DZ"};string[]strName2={"DS","JZ","LH"};varc=a.Intersect(b);
解决方案五:
linqIntersect(相交)string[]strName={"DS","JZ","LH","HS","DZ"};string[]strName2={"DS","JZ","LH"};varc=a.Intersect(b);
解决方案六:
引用3楼yuan521929的回复:
linqIntersect(相交)string[]strName={"DS","JZ","LH","HS","DZ"};string[]strName2={"DS","JZ","LH"};varc=a.Intersect(b);
您好:我用的是.net2.0也没有这个函数。
解决方案七:
boolContains(List<string>list,strings){foreach(strings1inlist)if(s==s1)returntrue;returnfalse;}List<string>Except(List<string>l1,List<string>l2){List<string>list=newList<string>();foreach(stringsinl1)if!(Contains(l2,s))list.Add(s);returns;}
解决方案八:
原来是数组,那修改下:boolContains(string[]list,strings){for(inti=0;i<list.GetLength(0);i++)if(s==list[i])returntrue;returnfalse;}string[]Except(string[]l1,string[]l2){List<string>list=newList<string>();for(inti=0;i<l1.GetLength(0);i++)if(!Contains(l2,l1[i]))list.Add(l1[i]);string[]a=newstring[list.Count];for(inti=0;i<list.GetLength(0);i++)a[i]=list[i];returna;}
解决方案九:
publicstring[]A(string[]values1,string[]values2){List<string>results=newList<string>(values1);foreach(stringvalueinvalues2){if(results.Contains(value))results.Remove(value);elseresults.Add(value);}returnresults.ToArray();}
解决方案十:
1楼的就可以呀1楼的没有就用6层的