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();
已通过删除日期 属性 的时间部分解决此问题。
我有以下代码:
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();
已通过删除日期 属性 的时间部分解决此问题。