如何访问.Net 1.1中的字符串(索引)?

swo*_*978 1 .net vb.net .net-1.1

我已经转换了这个现有的C#.NET 2.0代码(它看起来带有任何字符的字符串,只返回该字符串中的数字):

    private static string StripMIN(string min)
    {
        string result = string.Empty;
        int digit = 0;
        for (int i = 0; i < min.Length; i++)
        {
            if (int.TryParse(min[i].ToString(), out digit) == true)
            {
                result += min[i];
            }
        }
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

这个VB.Net .Net 1.1代码:

    Private Function StripMIN(ByVal min As String) As String
        Dim result As String = String.Empty
        Dim digit As Integer = 0
        Dim i As Integer = 0
        While i < min.Length
            Me.SystemMessages.Text = "Char at " + i + " : " + min(i)
            If TryParseInteger(min(i).ToString(), digit) = True Then
                result += min(i)
            End If
            System.Math.Max(System.Threading.Interlocked.Increment(i), i - 1)
        End While
        Return result
    End Function
Run Code Online (Sandbox Code Playgroud)

我在VB.Net代码的第6行收到错误消息min(i).错误消息显示:

"Expression is not an array or a method, and cannot have an argument list"
Run Code Online (Sandbox Code Playgroud)

我不是很精通.Net 1.1并且找不到解决此错误的替代解决方案.有没有人对我如何访问这个字符串的每个字符有任何建议,并验证它是一个数字并只返回.Net 1.1中字符串的数字?

Ada*_*son 6

您的问题是转换为VB,而不是框架更改.尝试使用min.Chars(i).请参阅此MSDN文章,该文章显示了索引器属性(min[i]在C#中看到的位置)Chars在VB中命名)

但是,我会使用这样的东西:

Private Function StripMIN(ByVal min As String) As String
    Dim result as New StringBuilder()

    ForEach c In min
        If Char.IsDigit(c) Then
            result.Append(c)
        End If
    End ForEach

    Return result.ToString()
End Function
Run Code Online (Sandbox Code Playgroud)