如何订购列表<;字符串>;

本文关键字:字符串 gt 何订购 lt 列表 | 更新日期: 2023-09-27 18:00:39

我的asp.net mvc web应用程序中有以下内容:-

public ViewResult Details(int id)
{
    var f = repository.AllFindDetails_J(id);
    List<string> ports = new List<string>();
    foreach(var p in f.CS.ITFirewalls)
    {
        ports.Add(p.CSPort);
    }
    foreach (var p2 in f.CS.ITRouters)
    {
        ports.Add(p2.CSPort);
    }
    foreach (var p3 in f.CS.ITSwitches)
    {
        ports.Add(p3.CSPort);
    }
    f.AssignedPorts = ports.Sort();
    return View(f);
}

但我在f.AssignedPorts = ports.Sort();上得到了以下错误:

无法将类型"void"隐式转换为"System.Collections.Generic.List"

如何订购列表<;字符串>;

Sort是一个void方法——它对现有列表进行排序,但不返回任何内容。

您可以在将列表传递到视图中之前调用Sort,也可以使用OrderBy扩展方法对列表进行排序,并返回一个包含排序内容的新IEnumerable

选项#1:

public ViewResult Details(int id)
{
    var f = repository.AllFindDetails_J(id);
    List<string> ports = new List<string>();
    foreach(var p in f.CS.ITFirewalls)
    {
        ports.Add(p.CSPort);
    }
    foreach (var p2 in f.CS.ITRouters)
    {
        ports.Add(p2.CSPort);
    }
    foreach (var p3 in f.CS.ITSwitches)
    {
        ports.Add(p3.CSPort);
    }
    ports.Sort();
    f.AssignedPorts = ports;
    return View(f);
}

选项2:

public ViewResult Details(int id)
{
    var f = repository.AllFindDetails_J(id);
    List<string> ports = new List<string>();
    foreach(var p in f.CS.ITFirewalls)
    {
        ports.Add(p.CSPort);
    }
    foreach (var p2 in f.CS.ITRouters)
    {
        ports.Add(p2.CSPort);
    }
    foreach (var p3 in f.CS.ITSwitches)
    {
        ports.Add(p3.CSPort);
    }
    //OrderBy requires using System.Linq; 
    f.AssignedPorts = ports.OrderBy(port => port).ToList();
    return View(f);
}

试试这个:

 return View(f.AssignedPorts);
ports.Sort()
f.AssignedPorts = ports;

这将给你带来你所拥有的结果。