如果属性为空,则返回默认值
本文关键字:返回 默认值 属性 如果 | 更新日期: 2023-09-27 18:16:00
根据文档,有一个名为DefaultIfEmpty的扩展方法:
DefaultIfEmpty :
返回指定序列或类型参数的元素如果序列为空,则为单例集合中的默认值。
所以在这种情况下,如果序列是空的,它返回一个默认值,例如,看看这个答案:
opencall.Priority = averages.Where(x => x.ProblemCode == opencall.ProblemCode)
.Select(x => x.Priority)
.DefaultIfEmpty("")
.Single();
在这个例子中,如果平均值是空的,它返回一个空字符串,但是我想知道是否有一个类似于linq中的扩展方法,这样如果属性(x.p priority)是空的,返回一个默认值?
PS:我知道我们可以使用if
语句检查:
opencall.Priority = averages.Where(x => x.ProblemCode == opencall.ProblemCode)
.Select(x => x.Priority)
.DefaultIfEmpty("")
.Single();
if (!string.IsNullOrWhiteSpace(opencall.Priority))
opencall.Priority = "Default value";
...
我只是想知道,有没有一种扩展方法来做到这一点?
您可以使用相同的DefaultOrEmpty
方法重载来提供默认值。在上面的查询中,因为我们试图获取String
类型的Priority
属性。您可以在方法overload中提供String的默认值:-
opencall.Priority = averages.Where(x => x.ProblemCode == opencall.ProblemCode)
.Select(x => x.Priority)
.DefaultIfEmpty("High")
.Single();
这将导致不匹配行的High
。