C#でLINQの使い方についての質問です。
以下の記事を参考にして、LINQでソートを行っていました。
http://www.buildinsider.net/web/bookaspmvc5/050304
開発環境はVisualStudio 2015です。
.Net Framework 4.5を使用しています。
私が実装したものは、以下のようなコードです。
C#
1var resultList = HogehogeService.SearchList(); 2resultList = (from c in resultList orderby c.RegistDateTime descending select c).ToList();
resultList
は System.Collections.Generic.IList
型です。
c.RegistDateTime
はSystem.Datetime
型です。
これで一応、ソートは出来ます。
この時、c.RegistDateTime
を、状況によってはc.UpdateDateTime
にするなど、動的に変更するような事は書けるのでしょうか?
単純に考えると以下のようになります。
C#
1bool isOk = true; //状況に応じて、trueだったりfalseだったり 2var resultList = HogehogeService.SearchList(); 3if(isOk){ 4 resultList = (from c in resultList orderby c.RegistDateTime descending select c).ToList(); 5}else{ 6 resultList = (from c in resultList orderby c.UpdateDateTime descending select c).ToList(); 7}
しかし、出来ればこんな感じで、分割して動的な条件に出来ないかと思っているんです。
C#
1bool isOk = true; //状況に応じて、trueだったりfalseだったり 2 3var resultList = HogehogeService.SearchList(); 4var tmp = (from c in resultList orderby ); 5 6if(isOk){ 7 tmp = (tmp c.RegistDateTime descending) 8}else{ 9 tmp = (tmp c.UpdateDateTime descending) 10} 11 12resultList = (tmp select c).ToList();
上記のような簡単な例ならば、どちらの方法でも良いと思うのですが、今後複雑な処理を作る際に知っておきたいのです。
どなたか良い方法をご存知無いでしょうか。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。