怎么样比如
String [] str1={"1","2","3"};
String [] str2={"2","3","4","5"};
合并完以后变成
取掉相同部分再合并
String [] str3={"1","2","3","4","5"};
String [] str1={"1","2","3"};
String [] str2={"2","3","4","5"};
合并完以后变成
取掉相同部分再合并
String [] str3={"1","2","3","4","5"};
{
ArrayList arr=new ArrayList();//因为string[]不能增加长度,所以先用ArrayList保存
for(int i=0;i<str1.Length;i++)
{
foreach(string s in str2)//循环比较两个string[]中相同的数
{
if(str1[i]==s)//相同则将这个string加进arr
{
arr.Add(s);
}
}
}
string str3=(string[])arr.ToArray(typeof(string));//将arr转换为string[],好像是这样记不清楚了
}
//缩进不太好不好意思
每次要遍历下,实际上还是相当于二重循环
如果数组非常大的话,考虑效率问题,可以用StringDictionary
用ContainsKey来判断是否存在
只是最后不能用CopyTo复制到string数组
需要手工写代码遍历复制~
String[] str2={"2","3","4","5"};
ArrayList sc = new ArrayList();
sc.AddRange( str1 );
foreach ( string s in str2 )
{
if ( !sc.Contains( s ) )
{
sc.Add( s );
}
}
str3 = (String[]) )sc.ToArray (typeof( string ));
String[] str1={"1","2","3"};
String[] str2={"2","3","4","5"};
System.Collections.ArrayList sc = new System.Collections.ArrayList();
sc.AddRange( str1 );
foreach ( string s in str2 )
{
if ( !sc.Contains( s ) )
{
sc.Add( s );
}
}
str3 = (String[]) )sc.ToArray (typeof( string ));
string[] str1 = { "1", "2", "3" };
string[] str2 = { "2", "3", "4", "5" };
string[] str3 = str1.Union(str2).Distinct().ToArray();
String[] str2={"2","3","4","5"};
Dictionary<string,string> d=new Dictionary<string,string>();
for(int i = 0;i< str1.Length;i++)
{
d[str1[i]]="";
} for(int i = 0;i< str2.Length;i++)
{
d[str2[i]]="";
}
string[] result=new string[d.Keys.Count];
d.Keys.CopyTo(result,0);
for(int i = 0;i< result.Length;i++)
{
Console.WriteLine(result[i]);
}