C#ArrayList重复数据删除
想对一个ArrayList进行重复数据删除,找了很多个都不行,网上那些都是对字符串操作的,我这个ArrayList里面放的是对象我现在用的一种就是ArrayListary...
想对一个ArrayList进行重复数据删除,找了很多个都不行,网上那些都是对字符串操作的,我这个ArrayList里面放的是对象
我现在用的一种就是
ArrayList ary = new ArrayList();
for (int i = 0; i < fileList.Count; i++)
{
if (!ary.Contains(fileList[i]))
{
ary.Add(fileList[i]);
}
}
fileList = ary;
删不掉
或者我用
int n = 0;
for (int ii = 0; ii < list.Count; ii++)
{
for (int jj = ii + 1; jj < list.Count; jj++)
{
n = list.IndexOf(list[ii], jj);
if (n > 0)
list.RemoveAt(n);
}
}
也不行 展开
我现在用的一种就是
ArrayList ary = new ArrayList();
for (int i = 0; i < fileList.Count; i++)
{
if (!ary.Contains(fileList[i]))
{
ary.Add(fileList[i]);
}
}
fileList = ary;
删不掉
或者我用
int n = 0;
for (int ii = 0; ii < list.Count; ii++)
{
for (int jj = ii + 1; jj < list.Count; jj++)
{
n = list.IndexOf(list[ii], jj);
if (n > 0)
list.RemoveAt(n);
}
}
也不行 展开
3个回答
展开全部
那个是引用类型的问题,ArrayList.Contains(object)里面的object比较的是引用(就像是一个指针),object的引用要指向的实际值一致才返回true。
要比较对像的实际值要用Equals(object),当然,在你的对像里重载Equals(object)函数,例如:
public override bool Equals(object obj)
{ if(((yourClassName)object).name==this.name)
return true;
else
return false;
}
然后移除重复值如下:
for (int ii = 0; ii < list.Count; ii++)
{
for (int jj = ii + 1; jj < list.Count; jj++)
{
if(list[ii].Equals(list[jj]))
list.RemoveAt(jj);
jj--;//由于刚刚删除了一个,所以jj要后退一个
}
}
要比较对像的实际值要用Equals(object),当然,在你的对像里重载Equals(object)函数,例如:
public override bool Equals(object obj)
{ if(((yourClassName)object).name==this.name)
return true;
else
return false;
}
然后移除重复值如下:
for (int ii = 0; ii < list.Count; ii++)
{
for (int jj = ii + 1; jj < list.Count; jj++)
{
if(list[ii].Equals(list[jj]))
list.RemoveAt(jj);
jj--;//由于刚刚删除了一个,所以jj要后退一个
}
}
展开全部
ArrayList arr = new ArrayList();你要处理的
自己赋值
for(int i=0;i<arr.Count;i++)
{
for(int j=i+1;j<arr.Count;j++))
{
if(arr[i].Equals(arr[j]))
{
arr.Remove(arr[j]);
}
}
}
dd[1
自己赋值
for(int i=0;i<arr.Count;i++)
{
for(int j=i+1;j<arr.Count;j++))
{
if(arr[i].Equals(arr[j]))
{
arr.Remove(arr[j]);
}
}
}
dd[1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先把数据放到Set里,然后再添加到List中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询