映射字符串数组和null检查哪种方式更好



将加法结果映射到代码的最佳方式是什么?result.adds包含一个字符串数组:string[] adds = new string[] { "A", "B", "C" };

选项1:

var car = new Car()
{
Name = request.Name,
Codes = (result.adds != null) ? adds : new string[] { }
};

在我看来,当结果为false时,选项1创建一个新的空字符串数组似乎很奇怪。我还对对象映射本身中的映射表示怀疑。另一方面,它是直接和快速的。

选项2:

if (result.adds != null)
{
adds = results.adds;
}
var car = new Car()
{
Name = request.Name,
Codes = adds
};

选项2的null检查对于单独定义代码似乎有些过头了。它可以简单地包含在映射器中。

在您提供的两个选项中,选项#1看起来最干净。然而,如果你可以使用空合并运算符,你可以简化它:

var car = new Car()
{
Name = request.Name,
Codes = result.adds ?? Array.Empty<string>()
};

这将在results.add为null时使用一个空字符串数组。

最新更新