请问C#中有没有判断数组元素重复,或如何去除重复呀?

 我来答
杨幂控372
2013-12-17 · 超过58用户采纳过TA的回答
知道答主
回答量:103
采纳率:100%
帮助的人:109万
展开全部
arr.Add("Java");arrayList arrCopy = new arrayList();//定义一个arr的副本 arrayList al = new arrayList();//定义目标数组 for( int i=0;i<arrCopy.Count;i++ )//从头开始,选择一个arr[i]与后边的进行比较{for( int j=i+1;j<arrCopy.Count;j++ )//向后遍历{if( arrCopy[i]==arr[j] && arrCopy[i].ToString()!="copy!"){arr[j]="copy!";//如果有重复的,在副本中做标记}if( j==arrCopy.Count-1 && arrCopy[i].ToString()!="copy!" ){al.Add(arr[i]);//遍历到最后一个,如果不是副本,进入目标数组}}}for( int i=0;i<al.Count;i++ ){System.Console.WriteLine(al[i].ToString());}
满意请采纳哟
2015-11-21 · 知道合伙人教育行家
满意请采纳哟
知道合伙人教育行家
采纳数:30594 获赞数:373503
2010年本科毕业于安徽工业大学高分子材料与工程专业,并取得工科学士学位证书。

向TA提问 私信TA
展开全部
C#数组去除重复元素算法:
通过遍历原数组中的每一个元素,将元素添加到新的泛型listString中,如果listString已经包含了就不添加,当遍历完原数组,泛型中保存的就是去重后的结果了。
由于需求对结果的元素序列没有任何要求,采取了下列算法来提高效率
string[] stringArray = {...因为是从文件读取的,这里省略了...}
List<string> listString =new List<string>();
Array.Sort(stringArray );//排序数组
int MaxLine = stringArray.Length;
#region 单独计算第一个
if (sourceData[0] != stringArray[1])
{
listString.Add(stringArray[0]);
}
#endregion
for (int i =1; i < MaxLine; i++)
{
if (sourceData[i] != stringArray[i-1])
{
listString.Add(stringArray[i]);
}
}

思路是:首先对数组进行排序,这样相同的数组就排列在了一起。然后遍历原数组,一次取出当前元素和上一个元素,如果2个元素相等就跳过,不相等就将其元素的保存到泛型listString中。(第一次运行的时候,前一个元素为空,所以把第一个元素单独拿出来处理)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式