我必须从Web服务客户端项目中的字符串中删除开头和结尾的数字字符,因为某些原因,挪威另一端的Web服务将不接受Nicosia 1121作为字符串...

因此,我决定构建一个可以实现此目的的可重用功能:

public static string CleanNosFromStr(string text, char charsToRemove)
{
    var CleanedStr = text.TrimEnd(charsToRemove).TrimStart(charsToRemove);
        return CleanedStr.ToString();
    }


我想这样称呼它:

char chars2Remove= new string("0,1,2,3,4, 5,6,7,8,9,0, ").Split(",");

wsSoapBody.CardCity =
myextensions.CleanNosFromStr(aMessage[(int)cardCreate.CardCity].ToString(),chars2Remove);


但是不会编译...

我得到的编译错误是:


  'string.String(char *)'的最佳重载方法匹配具有一些无效的参数
  
  参数1:无法从“字符串”转换为“字符*”


我要去哪里了,还有更好的方法吗?

我当然可以用

wsSoapBody.CardCity = aMessage[(int)cardCreate.CardCity].ToString().TrimEnd
('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', ' ').
TrimStart('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', ' ');


但我希望有一些可重复使用的东西。

谢谢

最佳答案

一些要点:


text.TrimEnd(charsToRemove).TrimStart(charsToRemove)可以用text.Trim(charsToRemove)缩短。
TrimTrimStartTrimEnd接受单个或多个字符(请参见String.Trim)。
您的代码new string("0,1,2,3,4, 5,6,7,8,9,0, ").Split(",")应该是"0,1,2,3,4,5,6,7,8,9, ".Split(',') ...
但是用"0123456789 ".ToCharArray()可以更好地表达它。


最后,您的代码可能是:

private static readonly char[] NosCharsToRemove = "0123456789 ".ToCharArray();
public static string CleanNosFromStr(string text)
{
    return text.Trim(NosCharsToRemove);
}




wsSoapBody.CardCity = myextensions.CleanNosFromStr(aMessage[(int)cardCreate.CardCity].ToString());

关于c# - 为TrimEnd和TrimStart创建一个char数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31459261/

10-10 06:13