c# - 使用 row.Field<T>(col) 和基于行/列索引获取单元格值之间的区别

标签 c# datatable tostring

我是 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.我该如何解决这个错误?

  1. 为什么第一次有效而第二次无效,这两种方法有什么区别?

最佳答案

row.Field<T>是一个通用方法,你会得到一些强类型的东西(在你的例子中是 decimal),它有自己的 ToString() 实现。 ,包括需要 CultureInfo 的重载作为参数。

然而,第二种使用索引的方法只会返回一个 object。 .这就是你得到错误的原因,因为 object.ToString()确实没有采用 1 个参数的重载。

关于c# - 使用 row.Field<T>(col) 和基于行/列索引获取单元格值之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37877941/

相关文章:

c# - VS2012 中的 Windows Phone 8 SDK,图标?

c# - 可访问性不一致 : field type 'System. Collections.Generic.Dictionary<> 的可访问性低于其他字段

javascript - DataTables:获取隐藏的 td 元素并强制更新 stateSave

java - 使用其他方法的 toString

java - 如何从另一个类访问数组列表,该类的主要目的不是数组列表

c# - ExecuteStoreCommand,多个插入语句产生无效字符错误

c# - Xamarin.Forms 的 ECDsa

javascript - 使用 ajax 和 GET 在 DataTable 中使用 MySQL 结果

c# - UWP 中的 DataTable 类在哪里?

Java 的 toString 方法未被重写