我有一系列对象的字符串字段。我想在循环中创建多个,然后根据其中一个字段对它们进行排序。这是我到目前为止所拥有的
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();
}
我应该使用什么方法进行排序,通常我采取了正确的方法来存储这样的数据?
答案 0 :(得分:1)
两个最简单的选项是:
EventsUnsorted.Sort()
- 默认情况下,List<String>
使用当前文化,不区分大小写的升序排序。
EventsUnsorted.OrderBy()
- 您将提供按以下方式排序的字段: .OrderBy(x=>x.EventID)
答案 1 :(得分:1)
使用这个简单的Linq表达式:
var EventsSorted = EventsUnsorted.OrderBy(event => event[0]);
答案 2 :(得分:0)
尝试使用List<string[]>
并添加订购的商品,用于样本:
// 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();
}
答案 3 :(得分:-1)
使用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);