我正在尝试对我的arraylist进行排序。
数组列表由时间格式的数据组成。
阵列:
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);
}
答案 0 :(得分:7)
是的,既然您只是拆分一个字符串,那么您只需要对字符串的数组进行排序(意味着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
'编辑回原始字符串 timeSplit
现在包含按您的意愿排序的字符串。
答案 1 :(得分:4)
Array.Sort(timeSplit, delegate(string first, string second)
{
return DateTime.Compare(Convert.ToDateTime(first), Convert.ToDateTime(second));
});