组合两个列表和linq查询,按来自不同列表的两个不同字段排序
本文关键字:列表 两个 字段 排序 查询 linq 组合 | 更新日期: 2023-09-27 18:16:16
我有不同字段的列表:
var list1 = // contains 'publish date'
var list2 = // contains 'press release date'
var list3 = // contains 'publish date'
var list4 = // contains 'press release date'
我需要首先将这些列表组合起来,然后按最晚发布日期或新闻稿日期排序。
按此解决方案尝试,输出列表,但它没有按预期的日期排序
var combinedList = list1.Concat(list2)
.Concat(list3)
.Concat(list4)
.OrderByDescending(x => x.Fields["Press Release Date"] != null || x.Fields["Publish Date"] != null)
.ThenBy(x => x.Fields["Press Release Date"] != null ? x.Fields["Press Release Date"].ToString() : "")
.ThenBy(x => x.Fields["Publish Date"] != null ? x.Fields["Publish Date"].ToString() : "").ToList();
由于没有给出列表的示例,因此没有对该代码进行测试,但是您可以尝试一下:
var combinedList = OrderByDescending(x => x.Fields["Press Release Date"] != null ? x.Fields["Press Release Date"].ToString() : x.Fields["Publish Date"].ToString()).ToList();
关于列表的假设:
每个成员只有两个字段中的一个-"Press Release Date"或"Publish Date"。