c# - 将 Do Until 循环从 VB 转换为 C#

标签 c# vb.net c#-4.0 c#-3.0

我需要将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/

相关文章:

c# - DataTemplate 不与 TabControl 一起显示

c# - 在没有 toUpper/toLower 的情况下大写/小写字符串的最有效方法

.net - 运行两个实例时自动增量不正确

c# - C# 4.0 中泛型类型参数的变体是否更接近更高种类的类型?

c# - 获取提升的excel进程

C# 使用来自授权端点 (crv, x, y) 的值验证 JWT token

c# - 如何从所有目录、其他目录中获取所有文件并检查每个文件大小?

vb.net - Structure 中的无参数构造函数

jquery - 使用c# Ajax请求MVC 4.0

visual-studio-2010 - 在 C#/VS2010 中单步执行 .NET 4.0 源代码时看不到参数