gpt4 book ai didi

c# - 在参数中包含字段名称的 Order IList

转载 作者:行者123 更新时间:2023-11-30 22:47:56 26 4
gpt4 key购买 nike

我有这段简单的代码

public ActionResult ListToGrid(string field, string direction)
{
_model.MyList = _repo.List();
}

要排序,我可以这样做:

_model.MyList = _employeeService.List().OrderBy(x => x.FirstName).ToList<Employee>();

但我想在参数中使用“as field”名称 receive (field) 和方向。

谢谢,

最佳答案

您可以使用反射,但那样会很慢。最有效的方法是声明一个在排序中使用的委托(delegate),并根据字符串分配一个函数:

Func<Employee,string> order;
switch (field) {
case "FirstName": order = x => x.FristName;
case "LastName": order = x => x.LastName;
}

对于方向我认为最好简单地使用单独的代码:

var list = _employeeService.List();
IEnumerable<employee> sorted;
if (direction == "ascending") {
sorted = list.OrderBy(order);
} else {
sorted = list.OrderByDescending(order);
}
_model.List = sorted.ToList<Employee>();

关于c# - 在参数中包含字段名称的 Order IList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2047197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com