【发布时间】:2018-10-10 03:31:59
【问题描述】:
是否要优化此代码以进行空检查?
if (objA != null && objA .Length > 0)
{
foreach (var child in objA )
{
if (child.Any != null)
{
foreach (var a in child.Any)
{
if (a.Name.ToLower() == "code")
{
//some code
}
}
}
}
}
【问题讨论】:
-
您可以放心地丢失
objA.Length > 0,因为foreach循环会有效地复制它。没有看到其他任何东西。 -
@glenebob:确定
-
objA的类型是什么?请向我们展示您的Any属性的定义。 -
@mjwills: objA 是 objectA 的数组。
-
foreach (var a in objA?.SelectMany(z => z?.Any).Where(y => y?.Name?.ToLower() == "code") ?? Enumerable.Empty<YourTypeHere>())可能会起作用。