【问题标题】:How to return row value if is null in String.Join如果在 String.Join 中为空,如何返回行值
【发布时间】:2014-06-12 09:12:06
【问题描述】:

在我看来,我有这个字符串连接。

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

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

感谢您的任何想法。

【问题讨论】:

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


    【解决方案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&lt;string&gt;,因为Where 返回一个IEnumerable,因此三元运算符中的两个值是兼容的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      • 2014-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-04
      • 1970-01-01
      相关资源
      最近更新 更多