我有一个List<T>
如何按 T 的 int 属性之一对它进行升序排序?
我知道我可以手动创建自己的方法,但是有什么方法可以简洁地做到这一点List<T>.Sort(通过 T 的 int 属性);?
我有一个List<T>
如何按 T 的 int 属性之一对它进行升序排序?
我知道我可以手动创建自己的方法,但是有什么方法可以简洁地做到这一点List<T>.Sort(通过 T 的 int 属性);?
您可以使用 Enumerable Orderby 按其属性进行排序。
List<yourType> yourCollection = YourSourceList.OrderBy(e=>e.YourProperty).ToList();
是的,您可以使用List<T>.Sort:
list.Sort((t1, t2) => t1.IntProperty.CompareTo(t2.IntProperty));
一种效率较低但更具可读性的方法是使用Enumerable.OrderBy:
list = list.OrderBy(t => t.IntProperty).ToList();
尝试这个:
 List<T> lst=List<T>.OrderBy(x => x.Property).ToList();
您可以编写自己的Comparer类。然后使用该类进行排序,例如:
myList.Sort(new MyListComparer());
嘿,试试这个代码到你的列表中,用于排序 ASC/DESC
 List<HRDocumentCheckList> ser=new List<HRDocumentCheckList>();
 ser.OrderByDescending(q => q.Document.Id).ToList();
希望对你有帮助
对于没有特权使用 Lamda 表达式方法的人,被接受为答案的人可以遵循下面给出的方法。核心思想是通过IComparable<Person>检查对象中定义的任何特定属性/字段来实现,这里是' Person'。
public class ConsoleApp
    {
        private static void Main(string[] args)
        {
            List<Person> p = new List<Person>();
            p.Add(new Person() {Age = 25, Name = "Jo"});
            p.Add(new Person() {Age = 10, Name = "Jo"});
            p.Add(new Person() {Age = 2, Name = "Jo"});
            p.Sort();
        }
    }
    public class Person : IComparable<Person>
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public int CompareTo(Person other)
        {
            return other == null ? 1 : Age.CompareTo(other.Age);
        }
    }