2

我有一个返回通用列表的方法。

我希望能够向此方法传递一个字符串值,该字符串值将代表类名称中的一个字段,并基于此我想按此字段对数据进行排序。我想以不同于开关的方式做到这一点。

例如;

private void GetList()
{
    var list = GetResearchStocks("Sedol");
}

private List<Stocks> GetResearchStocks(string orderBy = "")
{
    var currentResearchStockList = _reports.GetZeusData("tblResearchStocks");
    var researchStocklist = currentResearchStockList.AsEnumerable().ToList();
    _zeusResearchStocks = researchStocklist.Select(item => new ZEUS_ResearchStocks
        {
            Sedol = item[0].ToString(),
            StockName = item[1].ToString(),
        }
    ).ToList();

    if (orderBy != "")
    {
        return _zeusResearchStocks.OrderBy(o=>o.) ?????? < What to do here?
    }

    return _zeusResearchStocks;
}
4

1 回答 1

2

您可以使用动态 Linq库 (DLinq),也可以使用反射编写扩展方法以在order语句中使用字符串变量。

对于第二个选项,请参阅此示例

于 2013-02-13T11:49:05.497 回答