我需要将当前在VB6中的一些遗留代码转换为C#。我无法理解这段代码。特别是InStr功能,有人可以帮我解决这个问题并建议我使用C#等效。
For i = 1 To Len(sString)
sChar = Mid$(sString, i, 1)
iPos = InStr(1, "0123456789", sChar, vbBinaryCompare)
If iPos > 0 Then
sRetStr = sRetStr & sChar
End If
Next i
答案 0 :(得分:4)
InStr在另一个字符串中查找字符串的(从一开头)索引。现代.Net字符串方法中最接近的等价物是.IndexOf。但是,我会用这个C#语句替换你的代码。
string sRetStr = (sString.Where((c) => char.IsDigit(c)).ToArray()).ToString();
答案 1 :(得分:4)
我将代码缩减至此:
sRetStr = Regex.Replace(sSTring, "[^0-9]", "");