use*_*181 0 c# linq select string-concatenation
这里我在Linq查询下面有员工持续时间列.当StartDate或EndDate为null 时,如何删除" - " .只有当两者都不为空时我才想要" - ".
var query = from r in db.Employee
select new
{
Name = r.Name,
EmployeeDuration = r.StartDate +" - "+ r.EndDate
}
Run Code Online (Sandbox Code Playgroud)
您可以使用条件运算符.
var query = from r in db.Employee
select new
{
Name = r.Name,
EmployeeDuration = r.StartDate != null && r.EndDate != null
? r.StartDate + " - " + r.EndDate
: r.StartDate ?? r.EndDate
}
Run Code Online (Sandbox Code Playgroud)
产量
When nothing is null = 18.01.2017 18:00 - 18.01.2017 19:00
When StartDate is null = 18.01.2017 19:00
When EndDate is null = 18.01.2017 18:00
Run Code Online (Sandbox Code Playgroud)
或者另一种方法就是这样.
var query = from r in db.Employee
select new
{
Name = r.Name,
EmployeeDuration =
(r.StartDate ?? "?") +
" - " +
(r.EndDate ?? "?")
}
Run Code Online (Sandbox Code Playgroud)
产量
When nothing is null = 18.01.2017 18:00 - 18.01.2017 19:00
When StartDate is null = ? - 18.01.2017 19:00
When EndDate is null = 18.01.2017 18:00 - ?
Run Code Online (Sandbox Code Playgroud)