怎么删除数组中重复元素,比如string[] a={1,2,1}; 把1除去

如题所述

数组必需ArrayList或者是List类的,如果是Array就没有移除的方法。
我说ArryList的移除方法吧
ArrayList myArrayList = new ArrayList();
myArrayList.Add(1);
myArrayList.Add(2);
myArrayList.Add(3);
myArrayList.RemoveAt(2);//删除索引为2的元素
myArrayList.Remove(2);//删除值为2的元素

下面是冒泡排序的代码,把if里面的改了就可以(注意下面代码的数组是Array类的,要用上面说的2个类才可以)

using System;

namespace P93_TG
{
public class TG
{
public static void Main()
{
int[] arr = { 8, 19, 5, 67, 34, 21, 2, 57 };
for (int i = 0; i < arr.Length - 1; i++)
{
for (int j = i + 1; j < arr.Length; j++)
{
if (arr[i] > arr[j])
{
int tem = arr[i];
arr[i] = arr[j];
arr[j] = tem;
}
}
}
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-22
你好,结果是相同的。做个测试。

string a="";
string b=String.Empty;
Console.WriteLine(a.Equals(b));
返回的是True

******************************************

lucky0504说的没错。
因为String s = "";
这个""相当于new了一个实例,再把这个实例赋值给s,也就是说这句话引用了两个实例。
用String.Empty比""好的多。

******************************************
如果朋友不信,我们可以再来做一个测试,代码如下。

static void Main(string[] args)
{
String CountStr1;
String CountStr2;
DateTime dateStr1 = System.DateTime.Now;
for (int i = 0; i < 9999999; i++)
CountStr1 = "";
DateTime dateStr2 = System.DateTime.Now;
long StrResult = dateStr2.Millisecond - dateStr1.Millisecond;
Console.WriteLine("用引号赋值9999999次耗时:" + StrResult.ToString() + "耗秒。");

DateTime dateInt1 = System.DateTime.Now;
for (int i = 0; i < 9999999; i++)
CountStr2 = String.Empty;
DateTime dateInt2 = System.DateTime.Now;
long IntResult = dateInt2.Millisecond - dateInt1.Millisecond;
Console.WriteLine("用String.Empty赋值9999999次耗时:" + IntResult.ToString() + "耗秒");
Console.ReadLine();
}

一个简单的测试,看赋值""和引用静态String.Empty所用的耗时,如果没效果,就把9999999改大点。(这里我直接用耗秒计算,没有对耗秒1000变一秒的地方进行处理,但也能看见明显的效果) 19256希望对你有帮助!

参考资料:. vjykjti

本回答被提问者采纳
第2个回答  2008-11-22
我感觉只能用冒泡排序删除
相似回答