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

本文关键字:简单 方法 符号 美元 如果 存在 修剪 | 更新日期: 2023-09-27 17:47:22

我有一个数据行,我得到了一个元素,这是一个带有美元符号的金额。我正在调用一个toString。有没有另一种方法可以调用它来删除美元符号(如果存在)。

所以像这样:

博士。ToString.Substring(1, dr.ToString.Length);

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

我正在尝试通过显式定义另一个字符串来做到这一点。

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

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

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

你也可以

使用

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

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

如果使用的是 C# 3.0 或更高版本,则可以使用扩展方法。

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

然后,可以将代码更改为:

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

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

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

则表达式就可以了。

Regex.Replace(theString, "$", ");

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

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

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