如何将 int 数组转换为可为 null 的 int 数组?

How to convert an int array to a nullable int array?

假设我有一个包含 x 个成员的数组,我想创建另一个具有相同长度 (x) 和相同整数值的数组:

int[] arr = new int[x];
int?[] nullable_arr = arr;

我不能这样做:

int?[] arr = new int[x];

是否有到可空类型数组的显式转换或我不知道的东西?

是的,我可以简单地在一个循环中转换每个值,但我想问一下是否已经有一个简单的方法可以做到这一点。

我建议使用 Linq:

 int?[] nullable_arr = arr
   .Select(item => new int?(item))
   .ToArray();

您可以使用 Linq

中的 Cast
int?[] arrNull = arr.Cast<int?>().ToArray();

使用Array.ConvertAll方法的另一种方法

var values = new[] {1, 2, 3, 4};
var nullableValues = Array.ConvertAll(ints, value => new int?(value));

或者显式提供通用类型

var nullableValues = Array.ConvertAll<int, int?>(ints, value => value);