如何快速向上转换对象[,]为双[,]? [英] How can I quickly up-cast object[,] into double[,]?

查看:116
本文介绍了如何快速向上转换对象[,]为双[,]?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用的Microsoft.Office.Interop.Excel 我得到返回的类型的二维数组对象[,] 其中包含双击的元素。需要注意的是下界指数 1 而不是默认的 0 ,但我可以处理,很容易。

如何的很好的转换数组双击[,] 使用.NET 3.5。 (由很好我的意思是简洁,或紧凑型)。

注意

 双击[] = values​​_2&values​​.Cast LT;双>()ToArray的()。

做工作,但它通过平坦数组转换成一维结构。


解决方案

 对象[,] SRC =新对象[2,3];//使用测试双打初始化SRC。
SRC [0,0] = 1.0;
SRC [0,1] = 2.0;
SRC [0,2] = 3.0;
SRC [1,0] = 4.0;
SRC [1,1] = 5.0;
SRC [1,2] = 6.0;双[,] DST =新的双[src.GetLength(0),src.GetLength(1)];
Array.Copy(SRC,DST,src.Length);

I using Microsoft.Office.Interop.Excel I get returned a 2D array of type object[,] which contains double for elements. Note that the index lower bound is 1 instead of the default 0, but I can deal with that easily.

How can nicely convert the array into double[,] using .NET 3.5. (by nicely I mean concise, or compact).

Note that

double[] values_2 = values.Cast<double>().ToArray();

does work, but it flattens by array into a 1D structure.

解决方案

object[,] src = new object[2, 3];

// Initialize src with test doubles.
src[0, 0] = 1.0;
src[0, 1] = 2.0;
src[0, 2] = 3.0;
src[1, 0] = 4.0;
src[1, 1] = 5.0;
src[1, 2] = 6.0;

double[,] dst = new double[src.GetLength(0), src.GetLength(1)];
Array.Copy(src, dst, src.Length);

这篇关于如何快速向上转换对象[,]为双[,]?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆