在连接到字符串时处理LINQ中的空列

时间:2011-06-23 10:08:01

标签: c# linq null string-concatenation

我正在尝试在我的应用程序中获取人员详细信息,其中中间名称丢失了一些时间。我正在尝试这样:

contactTable.Select(c => c.Title + " " + c.FirstName).ToList();

但是,只要标题列在DB中保持为空,它就会为该条目返回空。我想要某种类似的东西:

contactTable.Select(c => (string.IsNullOrEmpty(c.Title) ? "" : c.Title + " ") + c.FirstName).ToList();

这是否可以在一个linq声明中?提前谢谢。

这是可能的,完整的答案包括可空的MiddleName:

contactDetails = contactTable.Select(c =>
            ((c.Title ?? "") + " " + c.FirstName).Trim() + " " + ((c.MiddleName ?? "") + " " + c.LastName).Trim()).ToList();

请参阅Trim()的双重用途。

1 个答案:

答案 0 :(得分:3)

利用:?? Operator

尝试以下代码

contactTable.Select(c => ( (( c.Title ?? "") + " "  + c.FirstName).Trim()).ToList();