C#跳过VB skipWhile

时间:2014-04-30 08:54:57

标签: c# vb.net

我在C#中有代码

string fileNameOnly = Path.GetFileNameWithoutExtension(sKey);
string token = fileNameOnly.Remove(fileNameOnly.LastIndexOf('_'));
string number = new string(token.SkipWhile(Char.IsLetter).ToArray());

我希望它在VB中

Dim fileNameOnly As String = Path.GetFileNameWithoutExtension(sKey)
Dim token As String = fileNameOnly.Remove(fileNameOnly.LastIndexOf("_"c))
Dim number As New String(token.SkipWhile([Char].IsLetter).ToArray())

我试过了,但没有用!是否有类似的东西使用。 它的作用是查看文件名,只使用它的数字部分,并在_后跳过所有字母和全部字母。

1 个答案:

答案 0 :(得分:1)

你必须在VB.NET中使用AddressOf

Dim number As New String(token.SkipWhile(AddressOf Char.IsLetter).ToArray())

您也可以使用Function

Dim number As New String(token.SkipWhile(Function(c)Char.IsLetter(c)).ToArray())

在VB.NET中,我经常使用多行并结合查询+方法语法来避免ugly Function/AddressOf keywords

Dim numberChars = From c In token
                  Skip While Char.IsLetter(c)
Dim numbers = New String(numberChars.ToArray())