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

标签 c#

我正在尝试使用列表创建一个函数。 它是排序和删除重复项。 排序不错,但不要删除重复项。 有什么问题?

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
    }

最佳答案

它不起作用,因为 slist 是按值传递的。将 rlist 分配给它对调用方没有影响。您用于检测重复项的算法似乎很好。如果您不想使用其他答案中建议的更优雅的 LINQ 方式,请更改返回列表的方法:

List<double> sort_del(List<double> slist){
    // Do your stuff
    return rlist;
}

关于c# - 无法在C#中进行简单的列表操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8493079/

相关文章:

c# - Convert 类和转换控制台输入 C#

c# - 如何从 ASP.NET webforms 中的 url 获取字符串?

c# - 没有 Controller 的 Web API MVC 模型验证

c# - nlog 登录到另一个目录

c# - 将字符串数据数组转换为列表

c# - NAudio ASIO 混音

c# - Linq To Entities 在 where 子句中进行错误的 SQL 转换

c# - 如何导出从 Grasshopper 烘焙的顶点颜色,Rhino3d 在 Unity、Unreal 等游戏引擎中或直接在 webXr 中实时分析?

c# - 使用非托管内存时出现奇怪的内存使用情况

c# - 为什么 object.Equals 和 instanceobject.Equals 不一样