You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C#中如何将object[]类型转换为double[][]类型?

解决object[]转double[][]的问题

你之前的两种方法都不适用,原因如下:

  • (double[][])a 直接强制转换失败,是因为object[]和double[][]属于完全不同的数组类型,二者没有继承关系,无法直接整体强转。
  • a.Cast<double[][]>() 报错,是因为Cast是把数组里的每一个元素转成指定类型,但你的数组元素是double[],不是double[][],类型不匹配。

正确的做法是逐个转换数组里的元素,再重新组装成double[][],有两种常用方式:

方式一:使用LINQ(需要引用System.Linq)

using System.Linq;

// ...

double[][] result = a.Select(item => (double[])item).ToArray();

方式二:手动遍历赋值

double[][] result = new double[a.Length][];
for (int i = 0; i < a.Length; i++)
{
    result[i] = (double[])a[i];
}

原理很简单:原数组里的每个元素本身就是double[]类型,只要把每个元素单独强转成double[],再放到新的double[][]数组里就可以了,不能直接对整个object[]做类型转换。

内容的提问来源于stack exchange,提问作者sausage_mouse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 03:21:05