String.Replace在VB中工作但不是C#

Ewa*_*wan 4 c# string replace

以下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(或其他字符串修改)不起作用,看起来它们将实际编译,而我的不会.

tnw*_*tnw 8

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)

  • 打败我.VB有效,因为它会尝试将数字转换为字符串.如果将Option Strict On添加到文件的顶部,那么您应该看到它无法编译,并且出现与C#错误类似的错误. (4认同)