我有一个名为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的问题。
非常感谢任何指导。
答案 0 :(得分:3)
如果要对列表进行排序:
ListOfDataStore.Sort((x, y) => x.Name.CompareTo(y.Name));
如果要按名称排序新集合:
var orderedListOfDataStore = ListOfDataStore.OrderBy(item => item.Name);
答案 1 :(得分:2)
LinQ可以帮助您使用方法OrderBy或OrderByDescending来订购列表
var sorted = ListOfDataStore.OrderBy(d=> d.Name)