asp.net-mvc如何进行排序的列表

发布时间: 2016/10/9 2:46:47
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有以下几点我 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' 类型隐式转换

解决方法 1:

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);
}
官方微信
官方QQ群
31647020