C# 排序日期时间范围

C# 排序日期时间范围,c#,C#,给定范围datetime(开始时间和结束时间)的列表,如何按持续时间(例如,从最大持续时间到最小持续时间)对其进行排序?假设列表中的每个对象都是日期时间类型的对象,则可以使用Ticks属性对其进行排序 如果它们是范围,则可以从结束时间的刻度中减去开始时间的刻度,并使用结果值进行排序 例如: DateTime Start = YourStartValue; DateTime End = YourEndValue; long Range = End.Ticks - Start.Ticks; 这将

给定范围datetime(开始时间和结束时间)的列表,如何按持续时间(例如,从最大持续时间到最小持续时间)对其进行排序?

假设列表中的每个对象都是日期时间类型的对象,则可以使用Ticks属性对其进行排序

如果它们是范围,则可以从结束时间的刻度中减去开始时间的刻度,并使用结果值进行排序

例如:

DateTime Start = YourStartValue;
DateTime End = YourEndValue;
long Range = End.Ticks - Start.Ticks;
这将为您提供一个表示范围内时间长度的“刻度”,数值越小,持续时间越短


对每个范围重复此操作,然后您可以对结果进行排序。

假设en B是DateTime,您可以使用这样的时间跨度

long sort = (A - B).Ticks;

您需要在第三个属性中保存持续时间,然后对第三个属性应用排序

如果您是从数据库填充列表并将其保存在DataTable中。然后,您可以在基于表达式的列上的datatable上添加一个Then apply排序

如果您有类对象的通用列表。那么你的财产应该像这样

public long Duration {
    get {
        return (endDate - startDate).Ticks;
    }
}

我猜你有开始和结束,两者都是数据时间类型。

@BoltClock每个项目都有开始和结束时间。