c# - 以字符串形式按属性对对象进行排序

标签 c# sorting

有什么办法可以让我完成这项工作吗?不起作用的部分以粗体显示。本质上,我试图找出一种方法让它按作为字符串传递的 sortColumn 进行排序。它想要 o => o.Field 而不是 o.String。

internal List<Apps> GetAllApps(string sortColumn)
{
    List<Apps> employeeList = new List<Apps>();

    // Some database operations that fill employeeList
    // with a bunch of objects from a database operations

    if (!string.IsNullOrEmpty(sortColumn))
    {
        employeeList.OrderBy(o => **o.sortColumn** ).ToList();

    }

    return employeeList;
}

最佳答案

你可以尝试这样的事情:

var sortPropertyInfo = typeof(Apps).GetProperty(sortColumn);

employeeList
    .OrderBy(o => sortPropertyInfo.GetValue(o, null))
    .ToList();

可以添加一些健全性检查。或者,考虑使用 Dynamic LINQ .

关于c# - 以字符串形式按属性对对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20502051/

相关文章:

javascript - Angularjs int 过滤器在智能表中没有正确排序

c# - 如何在对象上画一条虚线?

c# - 如何播放要在设定的延迟下重复播放的音频片段阵列?

arrays - 使用矢量运算在 MATLAB 中按幅度对矢量条目进行排名

java - 从其他类访问内部类

mysql - 根据列值对分层 SQL 行进行排序

arrays - 按日期对数组中的对象进行排序

c# - 将复合键与 Entity Framework Core 结合使用并将其中的一部分用作外键

c# - 如何在 ASP.NET 中管理应用程序配置?

c# - Visual Studio - 我可以通过网络在 CE 设备上调试我的应用程序吗