排序数组列表

时间:2014-04-28 17:12:09

标签: c# arrays sorting

我有一系列对象的字符串字段。我想在循环中创建多个,然后根据其中一个字段对它们进行排序。这是我到目前为止所拥有的

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();
}

我应该使用什么方法进行排序,通常我采取了正确的方法来存储这样的数据?

4 个答案:

答案 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);