1

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

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

我不能这样做:

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

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

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

4

3 回答 3

8

使用方法的另一种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);
于 2017-01-01T21:41:31.487 回答
7

我建议使用Linq

 int?[] nullable_arr = arr
   .Select(item => new int?(item))
   .ToArray();
于 2017-01-01T21:13:54.293 回答
5

你可以Cast从 Linq使用

int?[] arrNull = arr.Cast<int?>().ToArray();
于 2017-01-01T21:16:03.250 回答