如何对课程列表进行排序

时间:2018-08-31 08:43:01

标签: c# winforms list linq sorting

我有一个名为DataStore的类,其中有以下内容;

string Name;
DateTime Date;
double Code;

在主表单中,我具有以下列表;

List<DataStore> ListOfDataStore = new List<DataStore>

我以主要形式创建此类的实例,并根据用户输入的值分配值并将其存储在下面的列表中;

 DataStore dataStore = new DataStore();
 dataStore.Name = "abc";
 dataStore.Date = new DateTime(Year,Month,Day);
 dataStore.Code = 10;
 ListOfDataStore.Add(dataStore);

 DataStore dataStore = new DataStore();
 dataStore.Name = "def";
 dataStore.Date = new DateTime(Year,Month,Day);
 dataStore.Code = 20;
 ListOfDataStore.Add(dataStore);

 DataStore dataStore = new DataStore();
 dataStore.Name = "ghi";
 dataStore.Date = new DateTime(Year,Month,Day);
 dataStore.Code = 30;
 ListOfDataStore.Add(dataStore);

我现在想按每个dataStore.Name中的内容对ListOfDataStore进行排序,但我无法解决如何在不给出列表ListOfDataStore索引的情况下访问字符串Name的问题。

非常感谢任何指导。

2 个答案:

答案 0 :(得分:3)

如果要对列表进行排序:

ListOfDataStore.Sort((x, y) => x.Name.CompareTo(y.Name));

如果要按名称排序新集合:

var orderedListOfDataStore = ListOfDataStore.OrderBy(item => item.Name);

答案 1 :(得分:2)

LinQ可以帮助您使用方法OrderByOrderByDescending来订购列表

var sorted = ListOfDataStore.OrderBy(d=> d.Name)