2015-09-16 5 views
0

Я пытаюсь получить последнее слово строки. Я разделить строку пробелами, а затем получить последнее, но он показывает ошибку «Последний не является членом String()»Последнее не является членом String() - VB.Net получает последнее слово строки

str = "This is a string of words" 
str = currentPriceString.Split(" ").Last 

Что я делаю неправильно?

Примечание: У меня есть ссылка System.Linq

+0

ли мы считать 'currentPriceString' это та же строка, как' str'? Всегда отправляйте реальный код. – LarsTech

ответ

0

Вы упомянули ссылку на сборку, но, кажется, что вы пропустили указать импорт в верхней части класса/модуля, который содержит, что блок кода, который вы показали.

Imports System.Linq 

Если у вас также есть импорт, то, возможно, что происходит в том, что вы ориентируетесь на версию .NetFx ниже v3.5, где не существует не LINQ особенности, проверить свой .Net Framework ориентируется и увеличить его до версии 3.5 или выше.

+0

"где не существует функций LINQ" -> ", у которого нет LINQ"? –

0
Dim str As String = "This is a string of words" 
Dim getLastWord As String = Mid(str, str.LastIndexOf(" ") + 2) 

Это приведет к получению любых символов за последний пробел в строке.

0

Чтобы использовать метод расширения IEnumerable.Last(Of TSource), ваш проект должен быть нацелен на .NET 3.5 или выше.

Пожалуйста, смотрите пример кода ниже:

Option Strict On 
Option Explicit On 

' The imports below are only required if the namespace(s) 
' have not been imported into your project's settings 
Imports System.Linq ' Requires .NET 3.5 or higher 
Imports Microsoft.VisualBasic ' This is required to use the Visual Basic functions like Mid(), InStr(), MsgBox(), etc... 

Module Module1 
    Sub Main() 
     Dim str As String = "This is a string of words" 
     Dim delim As Char = " "c 
     Dim strArr As String() = str.Split(delim) 
     Dim lastWord As String 

     ' Requires the Microsoft Visual Basic namespace to be imported 
     lastWord = Mid(str, InStrRev(str, delim) + 1I) 
     lastWord = Mid(str, str.LastIndexOf(delim) + 2I) 

     ' These are safe for .NET 2.0 and higher: 
     lastWord = strArr(strArr.Length - 1I) 
     lastWord = strArr(strArr.GetUpperBound(0I)) 

     ' These require .NET 3.5 and higher: 
     lastWord = (From word As String In strArr Select word).Last 
     lastWord = strArr.Last 
     lastWord = strArr.ElementAt(strArr.GetUpperBound(0I)) 
    End Sub 
End Module 
Смежные вопросы