如何将 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);
假设我有一个包含 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);