我有一个DataRow,我得到的元素之一是带有美元符号的金额.我正在调用一个toString.是否有其他方法我可以调用它来删除美元符号(如果存在).
所以类似于:
dr.ToString.Substring(1,dr.ToString.Length);
但更有条件的是,美元符号再次出现.
我试图通过显式定义另一个字符串来做到这一点.
Convert.ToString(dr(columnName)).Replace("$", String.Empty)
- 如果您正在使用数据表,则必须将值(默认情况下为其对象)取消装入字符串,因此您已经创建了一个字符串,然后是另一个字符串.实际上没有其他方法可以绕过它,但是在处理成千上万的操作时,您只能看到性能差异.
你也可以用
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(),因为该对象已经是一个字符串.你可以改为施展它.