在我的视图中,我有这个字符串连接。
@String.Join(",", new userDbEntities().ShortCutsTables
.Where(rt => rt.ShortCut == row1.MsgT.FirstOrDefault()).Select(r => r.OpisSlo))
现在这个工作正常,但是,如果我没有在row1.MsgT中匹配的快捷方式,则返回空值。如何在这里创建sentece,所以如果没有匹配,只返回row1.MsgT.FirstOrDefault()而不是null。
感谢任何想法。
答案 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
,因此三元运算符中的两个值都是兼容的。