假设我有一个包含x
成员的数组,我想创建另一个具有相同长度 ( x
) 和相同整数值的数组:
int[] arr = new int[x];
int?[] nullable_arr = arr;
我不能这样做:
int?[] arr = new int[x];
是否有显式转换为可空类型数组或我不知道的东西?
是的,我可以简单地在一个循环中转换每个值,但我问是否已经有一个简单的短方法来做到这一点。
假设我有一个包含x
成员的数组,我想创建另一个具有相同长度 ( x
) 和相同整数值的数组:
int[] arr = new int[x];
int?[] nullable_arr = arr;
我不能这样做:
int?[] arr = new int[x];
是否有显式转换为可空类型数组或我不知道的东西?
是的,我可以简单地在一个循环中转换每个值,但我问是否已经有一个简单的短方法来做到这一点。
使用方法的另一种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);
我建议使用Linq:
int?[] nullable_arr = arr
.Select(item => new int?(item))
.ToArray();
你可以Cast
从 Linq使用
int?[] arrNull = arr.Cast<int?>().ToArray();