日時リストがあり、可能であればラムダ式を使用して並べ替えたいのですが。
私のリスト:
6/19/1979 8:00:00 AM
5/5/1980 7:00:00 PM
10/20/1982 5:00:00 PM
1/4/1984 6:00:00 AM
出力は次の順序になります。
1/4/1984 6:00:00 AM
6/19/1979 8:00:00 AM
10/20/1982 5:00:00 PM
5/5/1980 7:00:00 PM
単に、OrderBy
the TimeOfDay
:
var list = dateList.OrderBy(x => x.TimeOfDay).ToList();
// ToList added in response to comment.
上記はすべての日付が同じ場合にのみ機能します。日付も異なる場合は、次のようにしてください...
var sortedDates = dates.OrderByDescending(x => x);
または、使用したくない、またはLinqがわからない場合は、次のようにしてください。
static List SortAscending(List list)
{
list.Sort((a, b) => a.CompareTo(b));
return list;
}
static List SortDescending(List list)
{
list.Sort((a, b) => b.CompareTo(a));
return list;
}
var result=dates.OrderBy(d=>d-d.Date);
list.Sort((a, b) => a.CompareTo(b));
listはList変数です。
このソリューションを使用する
list<DateTime> YourList=new list<DateTime> ();
.
.
.
YourList.OrderByDescending(x=>x.Date).ThenByDescending(x=>x.TimeOfDay).ToList()