无法在C#中进行简单的列表操作

146*_*ian 2 c#

我正在尝试用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)

das*_*ght 7

它不起作用,因为它slist是通过值传递的.分配rlist给它对呼叫者的结束没有影响.你的重复检测算法似乎很好.如果您不想在其他答案中使用更优雅的LINQ方式,请更改方法以返回列表:

List<double> sort_del(List<double> slist){
    // Do your stuff
    return rlist;
}
Run Code Online (Sandbox Code Playgroud)