我是 c# 的新手,我有这个运行良好的脚本
foreach(DataColumn col in dataTab.Columns){
foreach(DataRow row in dataTab.Rows){
row.Field<decimal>(col).ToString(CultureInfo.InvariantCulture); }}
我必须使用 ToString(CultureInfo.InvariantCulture)
才能读取小数点分隔符。无论如何,当我更改此代码时,在行/列索引上循环并放置 dataTab[rowIndx][colIndx].ToString(CultureInfo.InvariantCulture)
我在 ToString 方法中收到错误消息:
no overload for method tostring takes 1 argument
1.我该如何解决这个错误?
- 为什么第一次有效而第二次无效,这两种方法有什么区别?
最佳答案
row.Field<T>
是一个通用方法,你会得到一些强类型的东西(在你的例子中是 decimal
),它有自己的 ToString()
实现。 ,包括需要 CultureInfo
的重载作为参数。
然而,第二种使用索引的方法只会返回一个 object
。 .这就是你得到错误的原因,因为 object.ToString()
确实没有采用 1 个参数的重载。
关于c# - 使用 row.Field<T>(col) 和基于行/列索引获取单元格值之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37877941/