LINQ/Lambda .OrderBy(日期类型).ThenBy(枚举类型)

LINQ/Lambda .OrderBy(Date Type).ThenBy(Enum Type)

我有以下代码:

transactionBindingSource.DataSource = context.Transactions
                .Where(t => t.Date >= BeginningDate &&
                        t.Date <= EndDate)
                .OrderBy(t => t.Date)
                .ThenBy(t => t.TransactionType)
                .ToList();  

这是交易清单。我想先按日期排序交易,然后再按类型排序。该类型是我创建的枚举。枚举可以通过存款或取款。

枚举代码:

enum CashFlowTransactionType
{
    Deposit = 10,
    Withdrawal = 20
}

当我从此列表中获取我的数据网格时,它按日期排序,然后按交易类型排序,但它将取款放在存款之前。我需要在提款前将存款存入 post。我以为它会按枚举值对它进行排序,这就是为什么我存款 10 和取款 20 的原因。但似乎并非如此。

提前致谢。

将您的枚举定义为:

public enum CashFlowTransactionType : int
{
    Deposit = 10,
    Withdrawal = 20
}

然后将其命名为:

transactionBindingSource.DataSource = context.Transactions
            .Where(t => t.Date >= BeginningDate && t.Date <= EndDate)
            .OrderBy(t => t.Date)
            .ThenBy(t => (int)t.TransactionType)
            .ToList();  

已通过删除日期 属性 的时间部分解决此问题。