必要なラムダ式OrderBy DateTimeの持つ変換
-
06-07-2019 - |
質問
私が作り出してしまおうというものは、ラムダの発現(Linq、C#3.5)で行うOrderByに関する値のデータタイプ文字列がその構文解析可DateTime.
例えば、典型的な値の場合は"5/12/2009","1/14/2008"など。
のOrderBy条項以下の正常に動作しない問題を注文された場合と同様に文字列データ)ですが、私は実際に扱いたいの価値観としてDateTimesの並べ替えます。(SortColumnのようなものになっていくかも"dateCreated".)
List<MyObject> orderedList = unorderedList.OrderBy(p => p.Details.Find(s => s.Name == sortColumn).Value).ToList();
があるので、変換した値の述語なのか。のお役に立てるようお願いいたします。
解決
むしろ総非効率なもの:
List<MyObject> orderedList = unorderedList.OrderBy(p => DateTime.Parse(p.Details.Find(s => s.Name == sortColumn).Value)).ToList();
の数を削減するルックアップ/解析:
List<MyObject> orderedList =
(from extracted in (from p in unorderedList
select new { Item = p, Date = DateTime.Parse(p.Details.Find(s => s.Name == sortColumn).Value })
orderby extracted.Date
select extracted.Item)
.ToList();
他のヒント
プロジェクトの日付/時刻値をソートします。
var orderedList =
(from p in unorderedList
let value = DateTime.Parse(p.Details.Find(s => s.Name == sortColumn).Value)
orderby value
select p)
.ToList();
所属していません StackOverflow