我想默认修剪空白字符和其他字符。我是通过以下方式做到这一点的:
string MyTrim(string source)
{
char[] badChars = { '!', '?', '#' };
var result = source.Trim().Trim(badChars);
return result == source
? result
: MyTrim(result);
}
对我来说,这看起来很愚蠢,因为它的迭代次数超过了需要。是否可以为string.Trim()添加字符(而不是替换默认值)?还是在哪里可以找到默认情况下在string.Trim()中使用的“默认空白字符”数组?听起来很简单,但我找不到。
最佳答案
无法更改Trim
的默认行为。
但是,可以根据需要创建一个数组,其中包含要修剪的所有字符,这样您就可以将调用减少到一个调用,但这将是这样的:
var badChars =
(from codepoint in Enumerable.Range(0, 65536)
let ch = (char)codepoint
where char.IsWhiteSpace(ch)
|| ch == '!' || ch == '?' || ch == '#'
select ch).ToArray();
这将给您1个
Trim
的调用:var result = source.Trim(badChars);
理想情况下,您可以将该
badChars
存储在某个地方,这样就不必始终构建它。现在,这会比两个电话快吗?我不知道,但如有必要,我会进行衡量。
关于c# - 是否可以为string.Trim()添加字符(而不是替换默认值)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29675925/