FirstOrDefault()无法配合??操作员 [英] FirstOrDefault() unable to couple with ?? operator

查看:91
本文介绍了FirstOrDefault()无法配合??操作员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

据我了解,如果记录集为空,则linq方法FirstOrDefault()返回null.为什么不能对函数使用??运算符?像这样:

As far as I can understand, the linq method FirstOrDefault() returns null if a record-set is empty. Why can't use the ?? operator against the function? Like so:

Double d = new Double[]{}.FirstOrDefault() ?? 0.0;


更新

我不想稍后在我的代码中检查d是否为null.并这样做:

I don't want to check if d is null later on in my code. And doing:

Double d new Double[]{}.FirstOrDefault() == null
       ? 0.0 
       : new Double[]{}.FirstOrDefault();

...或:

var r = new Double[]{}.FirstOrDefault();

Double d = r == null ? 0.0 : r;

...似乎有点矫kill过正-我想在一行代码中执行null检查.

... seems a bit overkill--I'd like to do this null-check in one line of code.

推荐答案

实际上,FirstOrDefault<T>()返回T,它是一个值或default(T).

Actually, FirstOrDefault<T>() returns T, which is either a value or default(T).

default(T)null(T)0

这篇关于FirstOrDefault()无法配合??操作员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆