我有以下LINQ表达式,我需要连接字符串,但是,如果后面的后续字符串中有值,我只想显示连字符。例如,如果只有Wing和Floor,我应该只显示East-3。我试图在表达式中插入一些string.IsNullOrEmpty(),但编译器在Select关键字处抱怨......
param.Patient.PatientGroups.Select(g => g.Wing + "-" + g.Floor + "-" + g.Room + "-" + g.Bed + "-" + g.Table).FirstOrDefault()
答案 0 :(得分:7)
您可以使用string.Join
,但必须先将字段转换为数组:
param.Patient.PatientGroups
.Select( g => String.Join( "-"
, (new string[] { g.Wing, g.Floor, g.Room, g.Bed, g.Table })
.Where(x => !string.IsNullOrEmpty(x))
)
).FirstOrDefault()