将jagged int [] []数组转换为object [] []数组

时间:2014-09-26 18:59:06

标签: c# arrays casting

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

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

3 个答案:

答案 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();