如何简化代码的这一部分?

ale*_*der 1 c#

我有一个代码:

    byte[][][] file = GetConfigData();

    if (file == null)
        return;

    int pages = 0;
    for (i = 0; i < file.Length; i++)
    {   
        if (file[i] != null)
        {   
            for (j = 0; j < file[i].Length; j++)
            {   
                if (file[i][j] != null)
                {
                    pages++;
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我该如何简化它?

请提供2个版本:

  1. 对于.net 2.0
  2. for .net 3.5(linq)

Uco*_*dia 5

我不习惯.NET 2.0,但我可以为您提供一些.NET 3.5 Linq查询.

这里是:

pages = (from i in file
         where i != null
         from j in i
         where j != null
         select j).Count();
Run Code Online (Sandbox Code Playgroud)

但正如你所看到的那样,并且正如Will Dean所说,即使它更简单,它也不会自动使它更容易理解.我想补充一点,当你在代码简化方面走得太远时,你可能也会在代码不可读性方面走得更远.

我更喜欢有意义且易于阅读的代码,以及更强大和更短的代码,因为随着时间的推移,硬件得到改进,因此编写良好且易于阅读的代码将更快并且易于维护,但更短且难以理解的代码将保持不可读.