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

如何在LINQ查询的匿名对象初始化中添加条件赋值逻辑?

当然可以内联实现!

完全没问题,你直接在LINQ的匿名对象初始化逻辑里就能搞定这个需求,用C#的条件运算符或者空值处理语法都能轻松实现,这是最简洁直接的方式。

方式一:三元条件运算符

通过?:运算符直接判断ParentProcessId是否为null,按需赋值:

Model.Select(m => new { 
    id = m.ProcessId, 
    parent = m.ParentProcessId == null ? "#" : m.ParentProcessId.ToString(), 
    text = m.Name 
});

这里要注意类型一致性:如果ParentProcessId是值类型(比如可空的int?),直接赋值字符串"#"会导致类型不匹配,所以需要用ToString()把原有值转成字符串,确保parent属性整体为string类型。

方式二:空条件+null合并运算符

如果觉得三元运算符有点啰嗦,可以用更简洁的语法组合:

Model.Select(m => new { 
    id = m.ProcessId, 
    parent = m.ParentProcessId?.ToString() ?? "#", 
    text = m.Name 
});
  • ?.是空条件运算符:如果ParentProcessId不为null,就调用ToString();如果是null,整个表达式返回null
  • ??是null合并运算符:如果前面的表达式结果为null,就自动替换成"#"

这两种方式都是完全内联在LINQ查询里的,不需要额外写辅助方法或者拆分逻辑,完美适配你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 20:34:05