Member 13711215 Ответов: 1

Startswith и endswith VB:NET


Привет, я хотел бы проверить, начинается ли textbox1 с определенного номера и заканчивается ли он определенным номером. У меня есть проблема, как это написать.
Спасибо Вам за помощь

Что я уже пробовал:

Я стараюсь:

Dim a As String = "010.551" Or "008.880" Or "008.881" Or "009.701" Or "009.706" Or "009.925" Or "011.149" Or "011.150" Or "009.648"
            
Dim b As String = "1"


 If TextBox1.Text.StartsWith(a) & TextBox1.Text.EndsWith(b) Then

Richard MacCutchan

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

Member 13711215

Ошибка: строка преобразования в long недопустима

Member 13711215

Я редактирую его:
regcis-это textbox1.text
и я заменяю & to andalso

Дим а как String = "010.551" или "008.880" или "008.881" или "009.701" или "009.706" или "009.925" или "011.149" или "011.150" или "009.648"
Dim b как строка = "5"
Если Реджис.StartsWith(a) AndAlso regCis.EndsWith(b) затем

1 Ответов

Рейтинг:
1

Maciej Los

1. Решение Linq
Вы можете использовать Перечислимый.Любой(TSource) Для (Интерфейс IEnumerable(Метод), Функция(Метод Логических)) (System.Linq)[^] чтобы определить, удовлетворяет ли какой-либо элемент последовательности условию, но вы должны внести некоторые изменения в свой код:

Dim a As String() = {"010.551", "008.880", "008.881", "009.701", _
		"009.706", "009.925", "011.149", "011.150", "009.648"}
Dim b As String = "1"

Dim t As String = "010.551ASDJKA1" 'TextBox1.Text

Dim result = a.Any(Function(x) t.StartsWith(x) And t.EndsWith(b))
If result Then 'it is equal to result=True
    'TextBox1.Text starts with one of string in [a] and ends with "1" in [b]
    'further instructions
End If


2. Non-Linq решение:
For Each s As String In a
	Dim result As Boolean = t.StartsWith(s) And t.EndsWith(b)
	If result Then 'it is equal to result=True
	    Console.WriteLine("TextBox1.Text starts with '{0}' and ends with '{1}'", s, b)
		Exit For
	End If
Next


Member 13711215

Спасибо ;)

Maciej Los

Всегда пожалуйста.
Если мой ответ был полезен, пожалуйста, примите его как решение (зеленая кнопка) - формально, чтобы удалить ваш вопрос из списка без ответа.

Ralf Meier

Отлично... но я слишком много думаю для "Инкуайрера"... но +5 от меня ;-)

Maciej Los

Спасибо, Ральф.