2015-03-26 2 views
-3

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

  1. Храните символы в списке и прокрутите каждый символ, чтобы проверить, существуют ли они в строке.
  2. Формируйте простую инструкцию if с операциями ИЛИ в случае, если набор символов мал.

Есть ли лучший способ сделать это, возможно, использовать LINQ.

В качестве примера я хочу проверить, являются ли какие-либо символы '>' или '<' или '=' частью строки 'a> b и b! = 10'.

+1

'метод .IndexOf' будет делать свою работу. – VMAtm

+1

'.Контейны' также должны работать. –

+1

Определите свою проблему немного лучше. Вам нужно знать, если * any * of '>', '<' или '=' находятся в вашей строке? Или * все из них? Вам нужно знать, какие именно. что ты уже испробовал? Что вы понимаете под эффектом? Быстрее? Меньше памяти? Меньше строк кода? Какое профилирование вы сделали, чтобы предложить то, что у вас сейчас есть, недостаточно эффективно? –

ответ

9

Вы можете использовать Intersect + Any:

bool contains = stringVariable.Intersect("><=").Any(); 
2

не должен быть слишком трудно:

var content = "a<b"; 

var isContained = content.Any(c => c == '<') 

..or для списка символов:

var charList = new []{'<', '>'}; 
var isAnyContained = content.Any(c => charList.Contains(c)); 
1

Вы можете использовать String.IndexOfAny:

string myString = "a > b and b != 10"; 
if (myString.IndexOfAny(new char[] { '<', '>', '=' }) >= 0) 
    { 
    // ... 
    } 

Или

Dim myString As String = "a > b and b != 10" 
If myString.IndexOfAny({">"c, ">"c, "="c}) >= 0 Then 
    ' ... 
End If 
Смежные вопросы