2

何かの一般的なリストを返すメソッドがあります。

このメソッドに、クラス名のフィールドの 1 つを表す文字列値を渡すことができるようにしたいと考えています。これに基づいて、このフィールドでデータを並べ替えたいと考えています。これをスイッチ以外の別の方法で行いたいと考えています。

例えば;

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

Dynamic Linqライブラリ (DLinq) を使用するか、リフレクションを使用して拡張メソッドを記述し、orderステートメントで文字列変数を使用することができます。

2 番目のオプションについては、この例を参照してください。

于 2013-02-13T11:49:05.497 に答える