C# 中的 VB6 字符串函数

本文关键字:函数 字符串 VB6 中的 | 更新日期: 2023-09-27 18:21:00

If Left(strText, 3) = "De " Then
    Mid(strText, 1, 1) = "d"
ElseIf Left(strText, 4) = "Van " Then
    Mid(strText, 1, 1) = "v"
End If

上面的 VB 代码需要转换为 C#。

我知道中左是

strText.Substring(1,1) and strText.Substring(0, 4)

但如果我做不到

strText.Substring(1,1) = "v";

我需要做吗..

strText.Replace(strText.Substring(1,1), "v"))

相反?

VB6 代码中没有注释。所以我只是猜测这里发生了什么。

编辑:对不起,错误的代码版本

C# 中的 VB6 字符串函数

第一个代码块测试字符串是否以字符Van开头,如果是,则用v替换第一个字符。

因此,最简单的替换是:

if(strText.StartsWith("De ")) {
   strText = "d" + strText.Substring(1);
}else if(strText.StartsWith("Van ")) {
   strText = "v" + strText.Substring(1);
}
strText = "v" + strText.Substring(1)

请注意,数组索引从 0 开始。我假设您正在尝试将"v"放在字符串中的第一个字符位置(即 0(。

编辑:请注意,与VB6示例相比,.net中的字符串是不可变的(即无法就地修改字符串的内容(,您可以在其中使用MidLeft在指定的字符位置设置值。

以下内容将返回一个包含修改内容的新字符串,该字符串应重新调整回strText以便您覆盖原始内容。

strText.Replace(strText.Substring(1,1), "v"))

此外,这不是一个好方法,因为有两件事1(如果strText是"van","strText.Substring(1,1(将返回"a"

2(strText.Replace(strText.Substring(1,1), "v"))将替换所有"a",而不仅仅是第一个。