优化null检查的if和foreach

时间:2018-04-30 03:53:52

标签: c# asp.net .net c#-4.0

无论如何要优化此代码以进行空检查?

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
                            }
                        }
                    }
                }
            }

1 个答案:

答案 0 :(得分:4)

我认为你想使用C#6 null条件?运算符。这是一些伪代码:

for (int i = 0; i < objA?.Length; i++)
{
    ExecuteCode(objA[i]?.Any);
}    

...

static void ExecuteCode(YourTypeHere[] children)
{
    for (int i = 0; i < children?.Length; i++)
    {
        if (children[i]?.Name?.ToLower() == "code")
        {
            //some code
        }
    }
}

使用for循环比foreach更快:In .NET, which loop runs faster, 'for' or 'foreach'?。两个循环都比Linq快一点。