【问题标题】:Sort list of objects on one of the object's Properties在对象的属性之一上对对象列表进行排序
【发布时间】:2013-12-17 12:40:01
【问题描述】:

我有一个对象列表List<MyObject>,我希望根据MyObject 的属性之一对该列表进行排序。所以,例如

MyObject obj1, obj2, obj3 = new MyObject();
obj1.Value = 0.2;
obj2.Value = 2.2;
obj3.Value = 1.3;

..列表的顺序是

List[0] = obj2;
List[1] = obj3;
List[2] = obj1;

我可以使用 .NET 本地函数来执行此操作,还是必须编写自己的搜索?

【问题讨论】:

    标签: c# .net list sortedlist


    【解决方案1】:

    1 个选项OrderBy

    yourList = yourList.OrderBy(x=>x.PropertyName).ToList();
    

    下降

    yourList = yourList.OrderByDescending(x=>x.PropertyName).ToList();
    

    2 选项List.Sort

    yourList.Sort((x,y)=>x.PropertyName.CompareTo(y.PropertyName));
    

    下降

    yourList.Sort((x,y)=>-x.PropertyName.CompareTo(y.PropertyName));
    

    【讨论】:

    • 他要的是降序
    【解决方案2】:

    使用OrderBy:

    var ordered = list.OrderBy(v => v.Value).ToList();
    

    还有OrderByDescending

    【讨论】:

      【解决方案3】:

      你应该先为你的对象定义一个array,然后试试这个

       MyObject[] myObjList = new MyObject[]{obj1,Obj2,Obj3};   
          var myRes =myObjList.OrderByDescending(obj => obj.Value);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-11
        • 2015-03-30
        • 2022-01-05
        相关资源
        最近更新 更多