如果在String.Join中为null,如何返回行值

时间:2014-06-12 09:12:07

标签: asp.net asp.net-mvc-4 return

在我的视图中,我有这个字符串连接。

@String.Join(",", new userDbEntities().ShortCutsTables
      .Where(rt => rt.ShortCut == row1.MsgT.FirstOrDefault()).Select(r => r.OpisSlo))

现在这个工作正常,但是,如果我没有在row1.MsgT中匹配的快捷方式,则返回空值。如何在这里创建sentece,所以如果没有匹配,只返回row1.MsgT.FirstOrDefault()而不是null。

感谢任何想法。

1 个答案:

答案 0 :(得分:1)

试试这个:

@String.Join(",", (new userDbEntities().ShortCutsTables
  .Where(rt => rt.ShortCut == row1.MsgT.FirstOrDefault()).Count() == 0 ? new List<string>{row1.MsgT.FirstOrDefault())} : new userDbEntities().ShortCutsTables
  .Where(rt => rt.ShortCut == row1.MsgT.FirstOrDefault()).Select(r => r.OpisSlo)))

您在Where子句后断开原始表达式。如果没有匹配,则元素的数量为0,而您将其传递给row1.MsgT.FirstOrDefault()。请注意,我使用此值实例化List<string>因为Where返回IEnumerable,因此三元运算符中的两个值都是兼容的。