C# 如何在linq中生成if语句

C# 如何在linq中生成if语句,c#,linq,C#,Linq,我有以下声明 Select(g => new AssembledPartsDTO { .. .. References = g.SelectMany(entry => entry.References).OrderBy(t => t).ToList() .. .. } 如果References.count==0,如何将添加到引用中?使用 References.count>0?引用:新列表(){“?”} 在LINQ表达式中使用a怎么样 你可以这样做 Reference

我有以下声明

Select(g => new AssembledPartsDTO
{
..
..
    References = g.SelectMany(entry => entry.References).OrderBy(t => t).ToList()
..
..
}
如果References.count==0,如何将
添加到
引用中?

使用

References.count>0?引用:新列表(){“?”}
在LINQ表达式中使用a怎么样

你可以这样做

References = (g.SelectMany(entry => entry.References).Count() == 0)
   ? g.SelectMany(entry => entry.References).OrderBy(t => t).ToList() : null;
另一种方式:

Select(g => 
{
   var obj = new AssembledPartsDTO { References= ... };
   if (obj.References.Count == 0)
   {  
      obj.References.Add("??");
   }

   return obj;
})

对于一个更复杂的逻辑,您可能需要这样做,因为三元运算符(?)不适用。

应该注意,这只适用于LINQ to对象。
Select(g => 
{
   var obj = new AssembledPartsDTO { References= ... };
   if (obj.References.Count == 0)
   {  
      obj.References.Add("??");
   }

   return obj;
})