我有 2 个类,如下所示:
class Widget
{
string Selected { get; set; }
List<Option> Options { get; set; }
}
class Option
{
string InternalCode { get; set; }
string ExternalCode { get; set; }
}
Options
为每个客户端动态填充不同的数据,以将 ExternalCode
显示为选项
Selected
填充有 ExternalCode
。
然后我需要访问匹配的 InternalCode
。
目前我是这样做的:
var option = widget.Options.SingleOrDefault(o => o.ExternalCode == widget.Selected);
var internalCode = option == null ? string.Empty : option.InternalCode;
是否可以使用使用 Null Coalesce 的单行?
最佳答案
是的,您可以使用 null 传播和 null 合并运算符,如果您可以使用 C# 6,这将满足您的需求:
var option = widget.Options
.SingleOrDefault(o => o.ExternalCode == widget.Selected)?.InternalCode
?? string.Empty;
?.
将转换为您对 option == null ?
部分的使用。
关于C# Null 与 LINQ 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34630920/