当用流畅的语法编写时,是否有语法糖或方法可以在同一行内“短路”LINQ 语句?例如,如果null
被FirstOrDefault
调用返回,是否有可能返回 null 否则继续方法链的其余部分?
List<string> testList = new List<string>() { "some", "strings" };
var reversed = testList.FirstOrDefault(x => x == "hello").Reverse();
该FirstOrDefault
调用将返回 null,因此该语句将ArgumentNullException
在Reverse
调用中抛出一个。有没有办法在调用之前停止,Reverse
因为此时返回了默认值?
(我知道查询可以分成另一行并且default(T)
可以在之前检查,Reverse
或者对于简单的情况,?:
可以使用条件运算符()但我很好奇我是否缺少更长/更复杂链的特定功能)
编辑 - 为了澄清这只是一个展示这个想法的例子,它不是任何实际代码的一部分。我想避免抛出异常,因为只拆分行并进行检查会更高效。