You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用LINQ单行代码处理GetUserName返回null时的取值问题?

搞定LINQ里的NullReferenceException问题

嘿,这问题太常见了!你只需要用上C#的null条件运算符(?.)就能一行解决,完全不用写额外的手动映射代码。

直接把你的代码改成这样就行:

var members = data.Select(t => new Members { username = service.GetUserName(t.Id)?.username }).ToList();

为啥这能行?

?.运算符会先帮你检查service.GetUserName(t.Id)的返回值是不是null:

  • 如果是null,整个表达式直接返回null,不会去碰后面的username属性,自然就不会触发错误;
  • 如果不是null,就正常读取username的值。

要是你想在返回null的时候给个默认值(比如空字符串),还能结合空合并运算符(??)再优化一步:

var members = data.Select(t => new Members { username = service.GetUserName(t.Id)?.username ?? "" }).ToList();

这样就完美满足你的需求啦!

内容的提问来源于stack exchange,提问作者Steve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 20:37:58