我在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();
上收到了以下错误:
无法隐式转换类型&#39; void&#39;到&#39; System.Collections.Generic.List&#39;
答案 0 :(得分:4)
Sort
是一种无效方法 - 它会对现有列表进行排序,但不会返回任何内容。
您可以在将列表传递到视图之前调用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);
}
答案 1 :(得分:0)
试试这个:
return View(f.AssignedPorts);
答案 2 :(得分:0)
ports.Sort()
f.AssignedPorts = ports;
这将为您提供结果。