2013-02-13 71 views
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; 
} 

回答

2

可以選擇使用Dynamic Linq庫(的DLinq),或者您可以使用反射在order語句中使用字符串變量只寫一個擴展方法。

有關第二個選項,請參閱this example