如何从LINQ中的列列表中选择非null

时间:2017-08-23 12:17:41

标签: c# linq

作为LINQ查询的一部分,我有一系列列,其中只有一列将包含一个值,如何将该单个值分配给变量而不必执行类似

的操作
myVal = column1.hasValue ? column1.value : column2.hasValue ? column2.value : column3.hasValue ? column3.value : etc

this question类似,但使用LINQ而不是SQL。

不幸的是,使用SQL处理任何数据库端都不是一个选项。

1 个答案:

答案 0 :(得分:6)

var values = new[]{ column1, column2, column3 };
var value = values.First(nullable => nullable.HasValue).Value;

或者更简洁:

var value = (column1 ?? column2 ?? column3).Value;