[英]LINQ - .Split(new[] { ' ' }) string and set default value if found null
这是我的LINQ查询
var listLogOutItems =
(from A in data
orderby A.FirstName
select new {
Login = "Logout",
Name = A.FirstName + " " + A.SurName,
ID = A.Id,
LogoutDate = A.LogOutTime.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)[0]
}).Distinct();
如果A.LogOutTime为null,则返回“Unknown”。 怎么办呢?
最简单的方法可能是使用空合并运算符??
。
LogoutDate = (A.LogOutTime ?? "Unknown").Split(...)[0]
如果A.LogOutTime
为null
,则它将使用"Unknown"
。 这稍微低效,因为它将在我们知道不需要Split
的字符串上调用Split
...在C#6中,您可以使用null条件运算符:
LogoutDate = A.LogOutTime?.Split(...)[0] ?? "Unknown"
这里,如果A.LogOutTime
为null
,则不会对Split
进行求值,并且表达式中该部分的结果将为null
- 然后在结尾处使用null合并运算符。
顺便说一下,不是每次都创建一个新的char[]
,你可能只有一个静态字段:
private static readonly ArrayWithSpace = new[] { ' ' };
然后在每次调用Split
重用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.