c# - Linq查询返回空值时如何返回null?
问题描述
我有以下代码从列表中获取值。
GetList().SingleOrDefault(x => x.Key == "MyKey").MyValue;
当列表中存在Key
具有值MyKey
的属性时,它可以正常工作,但是当列表中没有Key
具有值MyKey
的属性时,它会抛出 NullReferenceException
. 如何返回空值而不是异常。
System.NullReferenceException
HResult=0x80004003
Message=Object reference not set to an instance of an object.
解决方案
利用 ?。和 ?[] 空条件运算符。它在执行成员访问 (?.) 或索引 (?[]) 操作之前测试左侧操作数的值是否为 null;如果左侧操作数的计算结果为 null,则返回 null。
GetList().SingleOrDefault(x => x.Key == "MyKey")?.MyValue;
推荐阅读
- python - 以编程方式检测命令是否可以作为模块运行
- azure - 名称服务器 ns3-02.azure-dns.org。应该是正确的格式
- c++ - 具有结构的 glGetUniformLocation 问题
- c# - LiteDB.LiteException:文件不是有效的 LiteDB 数据库格式或包含无效的密码
- php - 如何在php中显示当前日期?
- javascript - REACT NATIVE:滚动视图不断弹回顶部不滚动
- pine-script - tradingview pinescript 中的输入“语句块”错误不匹配
- python - ImportError: cannot import name 'config' & 'module' object is not callable using PostgreSQL & Python
- c - C中的整数到二进制
- javascript - 使用 javascript 将网页滚动到给定位置