不久前有个需求:去除我输入数据的中重复的数据
数据类型如下:
101809003,101602046,101809003,101602122, 101809003,101602046,101809003,101602122,
看到需求就想到了for循环删除
开始我从i=0开始遍历循环
private List<String> removeDuplicate(List<String> list) {
for (int i = 0; i <=list.Count() - 1; i++)
{
for (int j = list.Count() - 1; j > i; j--)
{
if (list[j].Equals(list[i]))
{
list.Remove(list[j]);
}
}
}
return list;
}
然后最总删除结果就如下:
101809003,101602046,101809003,101602122,
其中的101809003删不掉,在正向遍历删除时,LIST长度会变短,数据向前移动会漏掉一些数据的比对
解决办法:换成逆向遍历
private List<String> removeDuplicate(List<String> list) {
for (int i = list.Count() - 1; i >=0; i--)
{
for (int j = list.Count() - 1; j > i; j--)
{
if (list[j].Equals(list[i]))
{
list.Remove(list[j]);
}
}
}
return list;
}