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

.NET 8中如何用一行代码安全修改FirstOrDefault匹配对象的属性?

解决方案

针对你的需求,在.NET 8环境下有两种简洁的一行代码实现方式,都能避免空引用异常:

  • 方案一:利用null条件运算符简化赋值

    _ = request.Order.FirstOrDefault(x => x.Name == "From")?.Name = "FromDate";
    

    原理:FirstOrDefault找不到匹配项时返回null,?.会直接终止后续操作,不会执行赋值;找到匹配项时正常修改Name属性。用_接收表达式返回值,避免编译器警告。

  • 方案二:筛选后批量处理(支持多个匹配项)

    request.Order.Where(x => x.Name == "From").ToList().ForEach(x => x.Name = "FromDate");
    

    原理:Where先筛选出所有Name为"From"的元素(无匹配则返回空集合),转成List后调用ForEach执行赋值操作,空集合不会触发任何修改,自然避免空引用问题。如果存在多个符合条件的元素,这个方案会一次性修改所有匹配项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:43:15