我正试图对我的arraylist进行排序.
数组列表由时间格式的数据组成.
阵:
9:15 AM, 10:20 AM
Run Code Online (Sandbox Code Playgroud)
我该如何排序?
我从下面的代码得到的结果是:
10:20 AM
9:15 AM
Run Code Online (Sandbox Code Playgroud)
以下是我的代码:
String timeText = readFileTime.ReadLine();
timeSplit = timeText.Split(new char[] { '^' });
Array.Sort(timeSplit);
foreach (var sortedArray in timeSplit)
{
sortedTimeListBox.Items.Add(sortedArray);
}
Run Code Online (Sandbox Code Playgroud)
是的,因为你只是分割一个字符串,你只是对一个字符串数组进行排序(意思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();
Run Code Online (Sandbox Code Playgroud)
在这里,我们所做的是:
DateTime
.DateTime
酒店订购Select
'回到原来的字符串timeSplit
现在包含按您的意愿排序的字符串.