我需要将VB代码转换成c#
Do Until MarkerPos = 0 Or i > UBound(Values)
s = Replace(s, Token, Values(i), , 1)
i = i + 1;
MarkerPos = Strings.InStr(s, Token);
Loop
我已经将它转换为 do while
do
{
s = Replace(s, Token, Values(i), , 1)
i = i + 1;
MarkerPos = Strings.InStr(s, Token);
} while(MarkerPos = 0 || i > UBound(Values));
它是否正确,是否有任何与 c# 中的 UBound 相关的类似内容???
最佳答案
您可以简单地使用 values.Length
返回 C# 数组中的项目数:
do
{
s = Replace(s, Token, Values(i), , 1)
i = i + 1;
MarkerPos = Strings.InStr(s, Token);
}
while(MarkerPos = 0 || i > Values.Length -1);
(您也可以对任何其他可枚举类型使用 .Count()
)
编辑:
此外 - 我认为您的情况可能是错误的:
i < Values.Length -1
编辑2:
你的逻辑可能应该是一个 AND:
while(MarkerPos = 0 && i < Values.Length-1);
关于c# - 将 Do Until 循环从 VB 转换为 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25136896/