我是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。我该如何解决这个错误?
答案 0 :(得分:2)
row.Field<T>
是一种通用方法,你会得到强类型的东西(在你的情况下为decimal
),它有自己的ToString()
实现,包括{{1作为参数。
然而,使用索引的第二种方式只会返回CultureInfo
。这就是你得到错误的原因,因为object
确实没有带有1个参数的重载。
答案 1 :(得分:2)
<div class="fullscreen-bg">
<video loop muted autoplay poster="assets/img/poster.png" class="fullscreen-bg__video">
<source src="assets/clip/clip<?php echo(rand(4,5,6)); ?>.mp4" type="video/mp4">
</video>
</div>
此行显示为十进制。 Decimaltype有一个ToString-overload接受Cultureinfo。
row.Field<decimal>(col).ToString(CultureInfo.InvariantCulture);
此行显示为对象。对象不有ToString-overload接受Cultureinfo。
答案 2 :(得分:1)
其他答案已涵盖问题#2
为什么它第一次起作用而不是第二次起作用,这两种方法有什么区别?
以下是问题#1
的答案如何解决此错误?
您可以使用Convert.ToString Method (Object, IFormatProvider):
Convert.ToString(dataTab[rowIndx][colIndx], CultureInfo.InvariantCulture)