C# 制作演员表<;T>;。分类

C# 制作演员表<;T>;。分类,c#,sorting,C#,Sorting,所以我有一个对象列表。这些对象具有属性时间戳。问题是,此属性是一个字符串。现在,当按时间戳对列表进行排序时,排序函数忽略“AM”和“PM” 这并不是: historicalAlarms.OrderBy(x => DateTime.Parse((Belimed.Alarm.HistoricalAlarmItem)x.TimeStamp)) 您可以使用OrderBy和DateTime.Parse来实现这一点 historicalAlarms = historicalAlarms .O

所以我有一个对象列表。这些对象具有属性时间戳。问题是,此属性是一个字符串。现在,当按时间戳对列表进行排序时,排序函数忽略“AM”和“PM”

这并不是:

historicalAlarms.OrderBy(x => DateTime.Parse((Belimed.Alarm.HistoricalAlarmItem)x.TimeStamp))

您可以使用
OrderBy
DateTime.Parse
来实现这一点

historicalAlarms = historicalAlarms
    .OrderBy(value => DateTime.Parse(value.TimeStamp))
    .ToList();

您可以使用
OrderBy
DateTime.Parse
来实现这一点

historicalAlarms = historicalAlarms
    .OrderBy(value => DateTime.Parse(value.TimeStamp))
    .ToList();

是的,您应该将字符串转换为DateTimes并对其进行比较。“问题是,此属性是一个字符串”承认的错误是半纠正的。是的,您应该将字符串转换为DateTimes并对其进行比较。“问题是,此属性是一个字符串”承认的错误是半纠正的。并将其赋回原始变量
OrderBy
不会修改原始列表,
Sort
会修改原始列表。很好,可能需要:historicallarms=historicallarms.OrderBy(value=>DateTime.Parse(value.TimeStamp)).ToList();我想你最后需要一个.ToList()?我已经更新了我的问题。还有一个problem@user2877820不要忘记,
OrderBy
不会更改列表,但会返回一个新列表。您需要将返回类型重新分配给列表,并将其重新分配给原始变量
OrderBy
不会修改原始列表,
Sort
会修改原始列表。很好,可能需要:historicallarms=historicallarms.OrderBy(value=>DateTime.Parse(value.TimeStamp)).ToList();我想你最后需要一个.ToList()?我已经更新了我的问题。还有一个problem@user2877820不要忘记,
OrderBy
不会更改列表,但会返回一个新列表。您需要将返回类型分配回列表。
historicalAlarms = historicalAlarms
    .OrderBy(value => DateTime.Parse(value.TimeStamp))
    .ToList();