public class Checkit
{
public string ID{ get; set; }
public string b{ get; set; }
public string c{ get; set; }
}
我有一个课程,我也使用List<T>
这样:
Checkitcs = new Checkit();
List<Checkit> Lst_Ch = new List<Checkit>();
我希望按ID
排序。例如:
Lst_Ch[1] = { ID=123 , b='afasfa' , c='afagas'}
Lst_Ch[2] = { ID=124 , b='afgasf' , c='afagas'}
Lst_Ch[3] = { ID=523 , b='afasfa' , c='afagas'}
Lst_Ch[4] = { ID=123 , b='afasfa' , c='afagas'}
Lst_Ch[5] = { ID=523 , b='afasfa' , c='afagas'}
Lst_Ch[6] = { ID=105 , b='afasfa' , c='afagas'}
我希望像那样排序:
Lst_Ch[6] = { ID=105 , b='afasfa' , c='afagas'}
Lst_Ch[1] = { ID=123 , b='afasfa' , c='afagas'}
Lst_Ch[4] = { ID=123 , b='afasfa' , c='afagas'}
Lst_Ch[2] = { ID=124 , b='afasfa' , c='afagas'}
Lst_Ch[5] = { ID=523 , b='afasfa' , c='afagas'}
Lst_Ch[5] = { ID=523 , b='afasfa' , c='afagas'}
如何对此列表进行排序?
答案 0 :(得分:1)
您的示例代码无法编译,因为您的类的ID
属性必须是int
而不是string
,并且您需要在字符串值周围加上双引号,像这样:
public class Checkit
{
public int ID { get; set; }
public string b { get; set; }
public string c { get; set; }
}
List<Checkit> Lst_Ch = new List<Checkit>();
Lst_Ch.Add(new Checkit
{
ID = 123,
b = "afasfa",
c = "afagas"
});
Lst_Ch.Add(new Checkit
{
ID = 124,
b = "afasfa",
c = "afagas"
});
Lst_Ch.Add(new Checkit
{
ID = 523,
b = "afasfa",
c = "afagas"
});
Lst_Ch.Add(new Checkit
{
ID = 123,
b = "afasfa",
c = "afagas"
});
Lst_Ch.Add(new Checkit
{
ID = 523,
b = "afasfa",
c = "afagas"
});
Lst_Ch.Add(new Checkit
{
ID = 105,
b = "afasfa",
c = "afagas"
});
其次,要对列表进行排序,请执行以下操作:
IEnumerable<Checkit> query = Lst_Ch.OrderBy(l => l.ID).ToList();
变量query
现在是您的排序列表,您可以在其他地方使用,循环播放等。
答案 1 :(得分:0)
你可以
使用Linq对其进行排序并创建新的List<T>
。类似的东西:
List<Foo> unsortedList = CreateAnUnorderedList() ;
List<Foo> sortedList = unsortedList.OrderBy( x => x.DateCreated )
.ThenBy( x => x.Id )
.ToList()
;
您可以对其进行排序。类似的东西:
List<Foo> myList = CreateAnUnorderedList() ;
myList.Sort( (x,y) => x.Id < y.Id ? -1 : x.Id > y.Id ? +1 : 0 ) ;
或者,您可以使用有序集合,例如SortedList<T>
。