修剪美元符号的简单方法(如果存在于C#中)

时间:2008-09-30 20:20:21

标签: c#

我有一个DataRow,我得到的元素之一是带有美元符号的金额。我正在调用一个toString。是否有其他方法我可以调用它来删除美元符号(如果存在)。

类似于:

dr.ToString.Substring(1,dr.ToString.Length);

但更有条件的是,美元符号再次出现。

我试图通过明确定义另一个字符串来做到这一点。

6 个答案:

答案 0 :(得分:17)

Convert.ToString(dr(columnName)).Replace("$", String.Empty)

- 如果您正在使用数据表,则必须将值(默认情况下为其对象)取消装入字符串,因此您已经创建了一个字符串,然后是另一个字符串。实际上没有其他方法可以绕过它,但是在处理成千上万的操作时,您只能看到性能差异。

答案 1 :(得分:8)

您也可以使用

string trimmed = (dr as string).Trim('$');

string trimmed = (dr as string).TrimStart('$');

答案 2 :(得分:7)

如果您使用的是C#3.0或更高版本,则可以使用extension methods

public static string RemoveNonNumeric(this string s)
{
   return s.Replace("$", "");
}

然后您的代码可以更改为:

((String)dr[columnName]).RemoveNonNumeric();

这将允许您稍后更改RemoveNonNumeric的实现,以删除外币等逗号或$符号等内容。

此外,如果从数据库出来的对象确实是一个字符串,则不应该调用ToString(),因为该对象已经是一个字符串。你可以改为施放它。

答案 3 :(得分:3)

正则表达式会起作用。

Regex.Replace(theString,“$”,“”);

但是有多种方法可以解决这个问题。

答案 4 :(得分:2)

dr [columeName] .ToString()。Replace(“$”,String.Empty)

答案 5 :(得分:0)

为什么不更新数据库查询以使其不返回美元符号?这样你就不必在C#代码中使用它了。