我正在尝试在我的应用程序中获取人员详细信息,其中中间名称丢失了一些时间。我正在尝试这样:
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()
的双重用途。
答案 0 :(得分:3)
利用:?? Operator
尝试以下代码
contactTable.Select(c => ( (( c.Title ?? "") + " " + c.FirstName).Trim()).ToList();