如果在C#中存在,则修剪美元符号的简单方法
时间:2020-03-06 14:56:46 来源:igfitidea点击:
我有一个DataRow,并且正在获取其中一个带有美元符号的金额元素。我正在调用toString。我可以调用另一种方法来删除美元符号(如果存在)。
所以像这样:
dr.ToString.Substring(1,dr.ToString.Length);
但更有条件的是,以防美元符号再次露面。
我正在尝试通过显式定义另一个字符串来做到这一点。
解决方案
Convert.ToString(dr(columnName)).Replace("$", String.Empty)
--
如果要使用数据表,则必须将值(默认情况下为Object)解包为字符串,因此我们已经在创建一个字符串,然后再创建一个替换字符串。确实没有其他方法可以解决它,但是在处理数以万计的操作时,我们只会看到性能差异。
正则表达式将工作。
Regex.Replace(theString," $","");
但是有多种方法可以解决此问题。
dr [columeName] .ToString()。Replace(" $",String.Empty)
为什么不更新数据库查询,使它不返回美元符号?这样,我们就不必在Ccode中对其付诸实践。
如果我们使用的是C3.0或者更高版本,则可以使用扩展方法。
public static string RemoveNonNumeric(this string s) { return s.Replace("$", ""); }
然后,代码可以更改为:
((String)dr[columnName]).RemoveNonNumeric();
这将允许我们稍后更改RemoveNonNumeric的实现,以删除逗号或者外币的$符号等内容。
另外,如果从数据库中出来的对象确实是字符串,则不应调用ToString(),因为该对象已经是字符串。我们可以改为投放它。
我们也可以使用
string trimmed = (dr as string).Trim('$');
或者
string trimmed = (dr as string).TrimStart('$');