我有不同字段的列表:
var list1 = // contains 'publish date'
var list2 = // contains 'press release date'
var list3 = // contains 'publish date'
var list4 = // contains 'press release date'
我需要先合并这些列表,然后按最新的发布日期或新闻发布日期排序。
尝试过这个 solution , 列表已输出,但未按预期按日期排序
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();
关于列表的假设:
每个成员都有两个字段之一 - “新闻发布日期”或“发布日期”。
关于c# - 结合两个列表和 linq 查询以按不同列表中的两个不同字段排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40408393/