以下VB代码正常工作,不会标记任何错误.
strLine = strLine.Replace(strLine.LastIndexOf(","), "")
Run Code Online (Sandbox Code Playgroud)
但是,相同的C#代码不会:
strLine = strLine.Replace(strLine.LastIndexOf(","), "");
Run Code Online (Sandbox Code Playgroud)
这不会像它说的那样编译
'string.Replace(string,string)'的最佳重载方法有一些无效的争论.
为什么这在VB中有效但在C#中无效?我该如何解决这个问题?
我认为它可能类似于C#string.Replace不起作用,但它暗示该代码将实际上是complile.
与其他string.Replace问题一样:string.Replace(或其他字符串修改)不起作用,看起来它们将实际编译,而我的不会.
LastIndexOf返回一个整数,而不是一个字符串.Replace需要string, string作为参数,你传递它int, string,所以异常The best overloaded method for 'string.Replace(string,string)' has some invalid arguements.
如果您只想删除所有,使用此:
strLine = strLine.Replace(",", "");
Run Code Online (Sandbox Code Playgroud)
根据您的代码,您可能只想替换最后一个实例,请,尝试这个,如果这是您想要的:
StringBuilder sb = new StringBuilder(strLine);
sb[strLine.LastIndexOf(",")] = "";
strLine = sb.ToString();
Run Code Online (Sandbox Code Playgroud)