格式化时间字符串的排序数组
本文关键字:排序 数组 字符串 时间 格式化 | 更新日期: 2023-09-27 18:04:18
我正在尝试对数组列表进行排序。
数组列表由时间格式的数据组成。
数组:9:15 AM, 10:20 AM
我应该如何排序?
从下面的代码得到的结果是:
10:20 AM
9:15 AM
下面是我的代码:
String timeText = readFileTime.ReadLine();
timeSplit = timeText.Split(new char[] { '^' });
Array.Sort(timeSplit);
foreach (var sortedArray in timeSplit)
{
sortedTimeListBox.Items.Add(sortedArray);
}
是的,因为你只是分割一个字符串,你只是排序数组字符串(意思是1
在9
之前,它不关心小数点)。要获得所需的排序,首先需要将其转换为DateTime
,如下所示:
timeSplit = timeText
.Split(new char[] { '^' });
.Select(x => new { Time = DateTime.Parse(x), String = x })
.OrderBy(x => x.Time)
.Select(x => x.String)
.ToArray();
这里,我们所做的是:
- 像之前那样分割字符串
- 创建一个新的匿名类型,包含原始字符串和转换为
DateTime
的字符串。 - 通过
DateTime
属性命令 -
Select
'ed回原字符串 - 转换为数组
timeSplit
现在包含您想要排序的字符串。
Array.Sort(timeSplit, delegate(string first, string second)
{
return DateTime.Compare(Convert.ToDateTime(first), Convert.ToDateTime(second));
});