【问题标题】: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<string>,因为Where 返回一个IEnumerable,因此三元运算符中的两个值是兼容的。