c#中 object 二维数组里面的值如何进行类型转换?

object[,]bottomDepth=newobject[3,2]{{"a",400},{"b",1400},{"c",1950}};for(inti=0;i<bot... object[,] bottomDepth = new object[3, 2] {{ "a", 400 }, {"b",1400}, {"c",1950}};

for (int i = 0; i < bottomDepth.Length;i++ )
{float aa = ( float) (bottomDepth[i,1]) ;
.......
}
把第二列的数字取出来做强制转换(我要做数学运算),运行时提示“指定的转换无效”,怎么办呢?
展开
 我来答
百度网友699a4df
2011-08-15 · TA获得超过1375个赞
知道小有建树答主
回答量:1079
采纳率:0%
帮助的人:360万
展开全部
首先你的for循环是错误额,
bottomdepath作为一个2为数组应该通过
GetLength(0) 获取 其某一维 的 长度..
[3,2] 第一wei 长度3,第二维 为2 也就是,,3 行两列。
不能采用length 会 得到所有的 item.的长度.

至于出现了转换无效..我感觉是因为object是一个引用类型,(bottomDepth[i,1]) 也返回一个引用类型,而float是一个值类型,...
你可以这样。
float aa = float.Parse((bottomDepth[i, 1]).ToString());
先把执行类转换为string. 然后通过float,Parse 方法转换为float。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友801b91b
2011-08-15 · TA获得超过8071个赞
知道大有可为答主
回答量:1152
采纳率:100%
帮助的人:1686万
展开全部
bottomDepth.Length
这里是二维数组,它的Length表示所以元素的数目总和
你的循环,应该是取得第一维的长度

转换,最好用类型.Parse()或Convert方法

正确代码如下:

for (int i = 0; i < bottomDepth.GetLength(0);i++ )
{
float aa = float.Parse(bottomDepth[i,1].ToString()) ;
Console.WriteLine(aa);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
平梦醉神风1I
推荐于2016-03-16 · TA获得超过1510个赞
知道小有建树答主
回答量:691
采纳率:0%
帮助的人:1035万
展开全部
object[,] bottomDepth = new object[3, 2] { { "a", 400 }, { "b", 1400 }, { "c", 1950 } };

for (int i = 0; i < bottomDepth.GetLength(0); i++)
{
float aa = Convert.ToSingle((bottomDepth[i, 1]));
Console.WriteLine(aa);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友586e433
2011-08-15 · TA获得超过3491个赞
知道小有建树答主
回答量:1221
采纳率:0%
帮助的人:1423万
展开全部
Convert.ToFloat()
因为C#不支持object 到float的自动转换.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
437384801
2011-08-15 · TA获得超过1867个赞
知道小有建树答主
回答量:1299
采纳率:0%
帮助的人:513万
展开全部
float aa=float.Parse(buttomdepth[i,1].ToString())
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式