如何在linq中创建if语句

时间:2013-05-29 10:21:41

标签: c# linq

我有以下声明

Select(g => new AssembledPartsDTO
{
..
..
    References = g.SelectMany(entry => entry.References).OrderBy(t => t).ToList()
..
..
}

如何将if References.count == 0 than Add("??")添加到References

3 个答案:

答案 0 :(得分:4)

使用?: Operator

References.count > 0 ? References : new List<string>(){"??"}

那个怎么样

答案 1 :(得分:2)

在LINQ表达式中使用ternary operator

你可以做这样的事情;

References = (g.SelectMany(entry => entry.References).Count() == 0)
   ? g.SelectMany(entry => entry.References).OrderBy(t => t).ToList() : null;

答案 2 :(得分:2)

另一种方式:

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

   return obj;
})

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