gpt4 book ai didi

c# - 先按null排序再降序

转载 作者:行者123 更新时间:2023-12-04 01:05:04 25 4
gpt4 key购买 nike

我有 LINQ 脚本,其中按键分组可能为空。我得到了正确的结果,现在我想先按 null 排序,然后按降序排序。因为 group by key 可以为 null,所以我无法检查 .hasValue!

在下面的方法中,我得到了 null 异常,因为我似乎没有按正确的顺序处理 null?

var v25 = (from transaction in filteredTransactions
join schedule in schedules on
new { siteId = transaction.LoginSiteID, startDate = transaction.LoginDateTime.Date, payrollNumber = transaction.PayrollNumber } equals
new { siteId = schedule.SiteId, startDate = schedule.StartTime.Value.Date, payrollNumber = schedule.PayrollNumber }
into ezi_s_t
from scheduleTransactions in ezi_s_t.DefaultIfEmpty()
group transaction by scheduleTransactions into groupedScheduleTransactions
select new
{
Schedule = groupedScheduleTransactions.Key,
Transactions = groupedScheduleTransactions.ToList()
}
)
.OrderBy(x=> x.Schedule == null? null : x.Schedule.EziScheduleId)
.ToList();

最佳答案

你需要OrderByDescending()当它是null然后使用ThenByDescending()

.OrderByDescending(x=> x.Schedule == null)
.ThenByDescending(x => x.Schedule?.EziScheduleId);

关于您的评论,您收到 System.NullReferenceException 错误的原因是因为如果 Schedule 为 null,您将无法访问它的属性(因为没有属性)所以您需要将 x.Schedule.EziScheduleId 更改为 x.Schedule?.EziScheduleId

直播Demo

关于c# - 先按null排序再降序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66744685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com