質問

私が作り出してしまおうというものは、ラムダの発現(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();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top