0
你知道有一个名为DefaultIfEmpty扩展方法,基于文档:返回默认值,如果一个属性为
DefaultIfEmpty:
返回指定序列或类型的元素参数的 默认值在单个集合中,如果序列为空。
所以,如果序列是空的这种情况下,它返回一个默认值,例如,看看this答案:
opencall.Priority = averages.Where(x => x.ProblemCode == opencall.ProblemCode)
.Select(x => x.Priority)
.DefaultIfEmpty("")
.Single();
在这个例子中,如果平均是空的,它返回一个空字符串,但我想知道是否有像linq中的扩展方法,所以如果preperty(x.Priority)为null,返回一个默认值?
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";
...
我只是好奇,想知道,是否有这样做,任何一种扩展方法吗?
那么你可以使用null-coalescing运算符:'x => x.Priority ?? “”' –
正如我刚才提到的那样,我们如何使用像DefaultIfEmpty这样的扩展方法来做到这一点。顺便谢谢你:) –
DefaultIfEmpty是关于序列是空的,没有提供每个元素的默认值。如果已经有一个C#操作符,为什么还需要扩展方法? –