C#数组中,把相同的元素提取出来,放入另一个数组中
例如array1中有747141525将重复的取出来,放入array2中结果为:array1中有74125array2中有7415...
例如 array1中有 747141525
将重复的取出来,放入array2中
结果为: array1 中有 74125
array2中有 7415 展开
将重复的取出来,放入array2中
结果为: array1 中有 74125
array2中有 7415 展开
6个回答
展开全部
这个时候最好使用List<string>或ArrayList(system.collection).
使用数组也可以做出来。
另外,如果只是单个字符的还可以使用string来做。
下面只给出List<string>的求解办法。//空手写的,你自己去调试,不过一般没错的
string[] array=new string[]{ "7","4","7","1","4","1","5","2","5"}
List<string> strList0=new List<string>();//原始数据
List<string> strList1=new List<string>();//数组一,Array1
List<string> strList2=new List<string>();//数组二,Array2
for(int i=0;i<array.Length;i++)
{
strList0.Add(array[i]);//复制到原始集合中
}
for(int i=0;i<strList0.Count;i++)
{
if(!strList1.Contain(strList0[i]))
{
//去掉重复的写入数组一
strList1.Add(strList0[i]);
}
}
//数组2的获取采用这样的算法,如果有相同的那么IndexOf和LastIndexOf的地址会不同因此可以这样写。
for(int i=0;i<strList1.Count;i++)
{
if(strList0.IndexOf(strList1[i])!=strList0.LastIndexOf(strList1[i])){
strList2.Add(strList1[i]);
}
}
//如果是int类型只要把string改为int就行了。
//使用循环将值付给数组
使用数组也可以做出来。
另外,如果只是单个字符的还可以使用string来做。
下面只给出List<string>的求解办法。//空手写的,你自己去调试,不过一般没错的
string[] array=new string[]{ "7","4","7","1","4","1","5","2","5"}
List<string> strList0=new List<string>();//原始数据
List<string> strList1=new List<string>();//数组一,Array1
List<string> strList2=new List<string>();//数组二,Array2
for(int i=0;i<array.Length;i++)
{
strList0.Add(array[i]);//复制到原始集合中
}
for(int i=0;i<strList0.Count;i++)
{
if(!strList1.Contain(strList0[i]))
{
//去掉重复的写入数组一
strList1.Add(strList0[i]);
}
}
//数组2的获取采用这样的算法,如果有相同的那么IndexOf和LastIndexOf的地址会不同因此可以这样写。
for(int i=0;i<strList1.Count;i++)
{
if(strList0.IndexOf(strList1[i])!=strList0.LastIndexOf(strList1[i])){
strList2.Add(strList1[i]);
}
}
//如果是int类型只要把string改为int就行了。
//使用循环将值付给数组
展开全部
//遍历数组元素来判断,使用List<T>或ArrayList辅助
int[] array1 = new int[] { 7, 4, 7, 1, 4, 1, 5, 2, 5 };
ArrayList list1 = new ArrayList(); //储存去重后剩余的元素
ArrayList list2 = new ArrayList(); //储存重复的元素
for (int i = 0; i < array1.Length; i++)
{
if (!list1.Contains(array1[i]))
list1.Add(array1[i]); //添加第一次出现的元素
else
list2.Add(array1[i]); //添加重复的元素
}
//现在list1中保存的元素就是对应你需要的array1
//list2中保存的元素则对应你需要的array2
//如果要转成数组,可通过循环赋值或者List等类的内置转换方法实现
int[] array1 = new int[] { 7, 4, 7, 1, 4, 1, 5, 2, 5 };
ArrayList list1 = new ArrayList(); //储存去重后剩余的元素
ArrayList list2 = new ArrayList(); //储存重复的元素
for (int i = 0; i < array1.Length; i++)
{
if (!list1.Contains(array1[i]))
list1.Add(array1[i]); //添加第一次出现的元素
else
list2.Add(array1[i]); //添加重复的元素
}
//现在list1中保存的元素就是对应你需要的array1
//list2中保存的元素则对应你需要的array2
//如果要转成数组,可通过循环赋值或者List等类的内置转换方法实现
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
地址
不管是JAVA,C#还是什么语言,在计算机中都以地址来存的
只是JAVA把指针操作给JVM来完成了
而C#也是同样,不过C#是可以使用指针的
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
不管是JAVA,C#还是什么语言,在计算机中都以地址来存的
只是JAVA把指针操作给JVM来完成了
而C#也是同样,不过C#是可以使用指针的
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
foreach (char item in array1)
然后对char逐一对比
然后对char逐一对比
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用linq
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询