假设我有一个包含x
成员的数组,我想创建另一个具有相同Length(x
)和相同整数值的数组:
int[] arr = new int[x];
int?[] nullable_arr = arr;
我不能这样做:
int?[] arr = new int[x];
是否存在显式转换为可空类型数组或我不知道的内容?
是的,我可以简单地在循环中转换每个值,但我问的是否已经有一个简单的方法。
答案 0 :(得分:5)
我建议使用 Linq :
int?[] nullable_arr = arr
.Select(item => new int?(item))
.ToArray();
答案 1 :(得分:5)
使用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);
答案 2 :(得分:4)
您可以使用Linq的Cast
int?[] arrNull = arr.Cast<int?>().ToArray();