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

Dar*_*ppo 2 c# linq

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

myVal = column1.hasValue ? column1.value : column2.hasValue ? column2.value : column3.hasValue ? column3.value : etc
Run Code Online (Sandbox Code Playgroud)

此问题类似,但使用LINQ而不是SQL.

不幸的是,使用SQL处理任何数据库端都不是一种选择.

Tim*_*ter 6

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

甚至更简洁:

var value = (column1 ?? column2 ?? column3).Value;
Run Code Online (Sandbox Code Playgroud)