如何根据自定义类中的变量对自定义类的列表进行排序?c#

本文关键字:自定义 排序 列表 变量 何根 | 更新日期: 2023-09-27 18:21:44

我想知道如何对我的列表进行排序。假设我有课,

public class Foo
{
     public float bar;
}

然后说我有列表

List<Foo> sortedList = new List<Foo>();

我想根据Foo的变量条对其进行排序。我很确定我应该使用linQ语句orderby,但我不知道如何按类中的变量排序。

如何根据自定义类中的变量对自定义类的列表进行排序?c#

通过调用OrderBy对列表进行排序。请注意,这会返回一个IEnumerable<T>。您必须调用ToList()才能再次获得列表:

var list = new List<Foo>();
var sortedList = list.OrderBy(foo => foo.bar).ToList();

一个选项:

var sorted =
        from foo in sortedList 
        orderby foo.bar ascending
        select foo;

或者:

var sorted = sortedList.OrderBy(foo => foo.bar);

我就是这样做的:

private List<ItemTotalsAcrossMonths> _itemTotalsAcrossMonthsList;
. . .
_itemTotalsAcrossMonthsList = _itemTotalsAcrossMonthsList.OrderByDescending(x => x.TotalPurchases13).ToList();

我只是简单地将排序结果分配回一般列表;您需要在末尾添加"ToList()"。