C#数组中,把相同的元素提取出来,放入另一个数组中

2024-12-18 23:37:27
推荐回答(5个)
回答1:

这个时候最好使用List或ArrayList(system.collection).
使用数组也可以做出来。
另外,如果只是单个字符的还可以使用string来做。
下面只给出List的求解办法。//空手写的,你自己去调试,不过一般没错的
string[] array=new string[]{ "7","4","7","1","4","1","5","2","5"}
List strList0=new List();//原始数据
List strList1=new List();//数组一,Array1
List strList2=new List();//数组二,Array2
for(int i=0;i{
strList0.Add(array[i]);//复制到原始集合中
}

for(int i=0;i{
if(!strList1.Contain(strList0[i]))
{
//去掉重复的写入数组一
strList1.Add(strList0[i]);
}
}
//数组2的获取采用这样的算法,如果有相同的那么IndexOf和LastIndexOf的地址会不同因此可以这样写。

for(int i=0;i{
if(strList0.IndexOf(strList1[i])!=strList0.LastIndexOf(strList1[i])){
strList2.Add(strList1[i]);
}
}

//如果是int类型只要把string改为int就行了。
//使用循环将值付给数组

回答2:

//遍历数组元素来判断,使用List或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等类的内置转换方法实现

回答3:

地址

不管是JAVA,C#还是什么语言,在计算机中都以地址来存的

只是JAVA把指针操作给JVM来完成了
而C#也是同样,不过C#是可以使用指针的

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

vaela

回答4:

foreach (char item in array1)
然后对char逐一对比

回答5:

用linq