如何订购列表<;字符串>;
本文关键字:字符串 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;
这将给你带来你所拥有的结果。