可能我要问的很简单,但我似乎没有把这个问题拿出来。 我有一个包含Date字段和Time字段的元素列表。 Date字段是常规DateTime,Time字段是字符串。 时间格式为HH:mm,范围为24h。
通过List.OrderBy(e => e.Date)按日期排序我的列表很简单,但我似乎无法在以后按时间对它进行排序,以便记录的顺序符合日期和时间。
我试过了,但这可能是一个大错误!
List = List.OrderBy(e => e.EstimatedDate).OrderBy(e => new TimeSpan(int.Parse(e.EstimatedTime.Substring(0,e.EstimatedTime.LastIndexOf(":"))),int.Parse(e.EstimatedTime.Substring(e.EstimatedTime.LastIndexOf(":")+1)),0).TotalMinutes);
我希望有人可以帮我解决这个问题。
答案 0 :(得分:12)
你想要OrderBy(...).ThenBy(...);
而且 - 如果时间在HH:mm
你不需要解析它那么 - 你可以按字母顺序排序,即< / p>
List = List.OrderBy(e => e.EstimatedDate).ThenBy(e => e.EstimatedTime).ToList();
或通过LINQ:
List = (from e in List
orderby e.EstimatedDate, e.EstimatedTime
select e).ToList();
答案 1 :(得分:4)
为什么不尝试以下内容:
List.OrderBy(e => e.Date).ThenBy(e => DateTime.Parse(e.Time));
// May need to change DateTime.Parse(e.Time) with appropriate conversion code
答案 2 :(得分:2)
你知道ThenBy()吗?
List = List.OrderBy(DATE).ThenBy(Time)