c# - 当外键为空时,使用 Lambda 表达式在 List<T> 中排序

标签 c# linq lambda

下面是我的查询:

List<db_table> listData = db.db_table.Take(50).ToList();

现在我想要这个列表作为排序列表。为此,我尝试了:

listData = db.db_table.OrderBy(x => x.db_table1.column_name).ToList();

我的列在那时也包含“null”并引发错误。

考虑 db_table 具有从 db_table1 分配的外键

最佳答案

您可以扩展您的 lambda 表达式或使用 c# 6 features :

// use c# 6.0 ?. operator
listData = db.db_table
             .OrderBy(x => x.db_table1?.column_name)
             .ToList();

// check value manually
listData = db.db_table
             .OrderBy(x => x.db_table1 != null ? x.db_table1.column_name : string.Empty)
             .ToList();

// filter null values before sorting
listData = db.db_table
             .Where(x => x.db_table1 != null)
             .OrderBy(x => x.db_table1.column_name)
             .ToList();

关于c# - 当外键为空时,使用 Lambda 表达式在 List<T> 中排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34927146/

相关文章:

c# - 如何在不使用 C# 中的正则表达式的情况下验证某些内容?

c# - ANTLR4 与 Unity3D

java - 获取第一个元素并在应用函数后返回

c# - 获取不同类型的固定长度的随机项目

linq - LINQ 是否支持可组合的 "OR Queries"?

java - Java lambda 中括号和箭头 (->) 之间的变量是什么?

python-3.x - 如果所有星星相同,则减少 df 中逗号分隔的字符串

c# - 指向结构数组中项目的索引器不起作用

c# - 使用字典,如何使用 .Max c# winforms 显示多个最常见的数字

c# - LINQ 多对多计数分组