c# - 结合两个列表和 linq 查询以按不同列表中的两个不同字段排序

标签 c# linq

我有不同字段的列表:

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/

相关文章:

c# - 使用 linq 获取一组元素

c# - 添加包含字符串 Contains test 的 LinqWhere 子句时出现问题

C# 林奇 : What is the difference between a Pull model and a Push model?

Visual Studio 中的 C# 脚本突然中途停止而没有错误

c# - .Net 等同于 JSP?

.net - 我可以在比较器中使用 orderby linq 关键字吗?

c# - 访问 IEnumerable<T> 子级

c# - 在引用 C# MVC Controller 中的成员时,由于其保护级别而无法访问对象

c# - Workflow Foundation 中自定义事件所需参数的默认值

c# - 如何将此函数从 C 转换为 C#?