gpt4 book ai didi

c# - 无法从 'object' 转换为 'decimal'

转载 作者:行者123 更新时间:2023-11-30 21:05:22 24 4
gpt4 key购买 nike

基本上我有一个列表:

 List<Decimal> SortOrders = new List<Decimal>();

还有一个数据行。我想比较列表是否包含控件中的项目。但我有一个异常(exception),

cannot convert from "Object " to "decimal

DataRow dr = dataSetSomething.Tables[0].NewRow();
...
dr["SortOrder"] = Convert.ToDecimal(numericOrder.Value);// works fine here
if (SortOrders.Contains(dr["SortOrder"]))// exception here, Why?
{
}

感谢您的帮助。

最佳答案

dr["SortOrder"] 的类型是Object

.NET 中的任何类型都是对象(因为所有类型都直接或通过继承链继承自Object),因此分配一个decimalobject 没问题。

反之则不然 - 并非所有 object 都是 decimal

您需要转换以获得预期的行为:

 if (SortOrders.Contains((decimal)dr["SortOrder"]))

(如果基础类型不是decimal,将抛出异常)。

关于c# - 无法从 'object' 转换为 'decimal',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11729117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com