如何对列表进行排序<T>?
这个问题在这里已经有了答案:
你的示例代码不会被编译,因为你的类的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
现在是您的排序列表,您可以在别处使用,循环等。
您可以
使用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>
。