有什么方法可以将int[][]
数组转换/转换为object[][]
数组吗?
int[][] = FillArray();
object[][] = iArray;
答案 0 :(得分:5)
如果您不想使用LINQ,可以使用Array.ConvertAll
。
int[][] iArray = FillArray();
object[][] oArray = Array.ConvertAll(iArray, x => Array.ConvertAll(x, y => (object) y));
LINQ的Cast
方法的其他答案也没问题。
但正如我在评论中指出的那样,请确保您意识到您是boxing数组的每个值。如果阵列具有相当大的尺寸,则可能导致性能问题。
答案 1 :(得分:4)
你可以这样做:
object[][] objArray = iArray.Select(r => r.Cast<object>().ToArray())
.ToArray();
答案 2 :(得分:3)
一些LINQ:
int[][] iArray = FillArray();
object[][] oArray = iArray.Select(i => i != null ? i.Cast<object>().ToArray() : null)
.ToArray();