lambda中的字符串条件

时间:2014-11-05 15:20:21

标签: c# linq

我有以下LINQ表达式,我需要连接字符串,但是,如果后面的后续字符串中有值,我只想显示连字符。例如,如果只有Wing和Floor,我应该只显示East-3。我试图在表达式中插入一些string.IsNullOrEmpty(),但编译器在Select关键字处抱怨......

param.Patient.PatientGroups.Select(g => g.Wing + "-" + g.Floor + "-" + g.Room + "-" + g.Bed + "-" + g.Table).FirstOrDefault()

1 个答案:

答案 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()