对数组列表进行排序
本文关键字:排序 列表 数组 | 更新日期: 2023-09-27 18:00:29
我有一系列用于对象的字符串字段。我想在一个循环中创建多个,然后根据其中一个字段对它们进行排序。这是我迄今为止拥有的
string[] EventArray = new string[3];
EventArray[0] = "STRStartDateTime" //Sort by this field A->Z
EventArray[1] = "StartTimeOut";
EventArray[2] = "EndTimeOut";
List<Array> EventsUnsorted = new List<Array>();
EventsUnsorted.Add(EventArray);
//Sort Events
foreach (Array Event in EventsSorted)
{
string Output = Event.GetValue(2).ToString();
}
我应该使用什么方法进行排序?通常情况下,我是否采取了正确的方法来存储这样的数据?
两个最简单的选项是:
-
EventsUnsorted.Sort()
-默认情况下,List<String>
使用当前区域性,不区分大小写的升序。 -
EventsUnsorted.OrderBy()
-您将提供要按例如.OrderBy(x=>x.EventID)
排序的字段
使用这个简单的Linq表达式:
var EventsSorted = EventsUnsorted.OrderBy(event => event[0]);
尝试使用List<string[]>
并添加订购的itens,例如:
// create the array
string[] EventArray = new string[3];
EventArray[0] = "STRStartDateTime"
EventArray[1] = "StartTimeOut";
EventArray[2] = "EndTimeOut";
// create the list
List<string[]> EventsUnsorted = new List<string[]>();
EventsUnsorted.Add(EventArray);
// sort by 0 index
EventsUnsorted = EventsUnsorted.OrderBy(x => x[0]).ToList();
foreach (string[] e in EventsSorted)
{
string Output = e[2].ToString();
}
使用Array.Sort方法。
string[] EventArray = new string[3];
EventArray[0] = "STRStartDateTime" //Sort by this field A->Z
EventArray[1] = "StartTimeOut";
EventArray[2] = "EndTimeOut";
Array.Sort(EventArray);