将交错的int[][]数组转换为object[][]数组

本文关键字:数组 转换 object int | 更新日期: 2023-09-27 18:24:45

有什么方法可以将int[][]数组转换/强制转换为object[][]数组?

int[][] = FillArray();
object[][] = iArray;

将交错的int[][]数组转换为object[][]数组

如果不想使用LINQ,可以使用Array.ConvertAll

int[][] iArray = FillArray();
object[][] oArray = Array.ConvertAll(iArray, x => Array.ConvertAll(x, y => (object) y));

LINQ的Cast方法的其他答案也可以。

但正如我在评论中指出的,请确保您意识到您正在对数组的每个值进行装箱。如果阵列的大小相当大,这可能会导致性能问题。

你可以做:

object[][] objArray = iArray.Select(r => r.Cast<object>().ToArray())
                            .ToArray();

一些LINQ:

int[][] iArray = FillArray();
object[][] oArray = iArray.Select(i => i != null ? i.Cast<object>().ToArray() : null)
                   .ToArray();