我正在尝试用list创建一个函数.它是排序和删除重复项.它排序很好,但不删除重复项.有什么问题?
void sort_del(List<double> slist){
//here i sort slist
//get sorted with duplicates
List<double> rlist = new List<double>();
int new_i=0;
rlist.Add(slist[0]);
for (i = 0; i < size; i++)
{
if (slist[i] != rlist[new_i])
{
rlist.Add(slist[i]);
new_i++;
}
}
slist = new List<double>(rlist);
//here get without duplicates
}
Run Code Online (Sandbox Code Playgroud)
它不起作用,因为它slist是通过值传递的.分配rlist给它对呼叫者的结束没有影响.你的重复检测算法似乎很好.如果您不想在其他答案中使用更优雅的LINQ方式,请更改方法以返回列表:
List<double> sort_del(List<double> slist){
// Do your stuff
return rlist;
}
Run Code Online (Sandbox Code Playgroud)