当外键为null时,使用Lambda Expression在List <T>中排序

iam*_*raj 3 c# linq lambda

以下是我的查询:

List<db_table> listData = db.db_table.Take(50).ToList();
Run Code Online (Sandbox Code Playgroud)

现在我希望这个列表作为排序列表.为此,我试过:

listData = db.db_table.OrderBy(x => x.db_table1.column_name).ToList();
Run Code Online (Sandbox Code Playgroud)

我的列也包含'null',那时它会抛出一个错误.

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

Vad*_*nov 5

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

// 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();
Run Code Online (Sandbox Code Playgroud)