2015-07-10 4 views
-2
dr["DomainName"].ToString().Contains("*") 

чеки dr["DomainName"] содержит символ *, но условие может также быть правдой, если оно содержит другие символы.Как проверить, что строка содержит только один конкретный символ?

Как я могу проверить, что строка содержит только один символ, и этот символ является *

+6

erm, 'dr [" DomainName "]. ToString() ==" * "' – Jodrell

+0

Если вы имеете в виду, что строка одна или несколько * и ничего больше - тогда проверьте это: http://stackoverflow.com/ Вопросы/16027475/c-sharp-define-if-all-characters-in-a-string-are-the-same- – PaulF

+0

Вы ищете * во всей строке, используя «Contains», так что это будет быть верным, когда строка содержит * даже один раз (по крайней мере) вместе с другими символами. Но если вы хотите проверить, что строка просто * (только), вы должны использовать решение, отправленное jodrell. В любом случае, почему этот вопрос ниспровергнут? Мне любопытно. – RelatedRhymes

ответ

5

Вы просто должны сравнить их с помощью String.Equals или ==

if(dr.Field<string>("DomainName") == "*") 
{ 
    // ... 
} 

String.Contains является поиск подстрока, тогда как == сравнивает всю строку.

1

Простой == должен делать это

dr["DomainName"].ToString() == "*" 
1

Все, что вам нужно сделать, это сравнить string к *:

dr["DomainName"].ToString() == "*"; 
0

Ниже приводится правильное условие, чтобы проверить, если это равно *.

dr["DomainName"].ToString() == "*" 
1

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

Например, ("Hello World").Contains("Hello"), а также ("Hello World").Contains('e') будут иметь значение true, поскольку данная строка (в этом случае «Hello World») содержит данный аргумент в обоих случаях. Подробнее о string.Contains here.

В вашем случае, однако, я понимаю, вы просто пытаетесь определить, является ли данная строка является звездочка, а не если он содержит один. В этом случае string.Contains не требуется! Просто сделайте простое сравнение, например: dr["DomainName"].ToString() == "*"

Исправьте меня, если я неверно истолковал ваш вопрос и не стесняюсь прокомментировать этот ответ, если у вас есть еще вопросы.

Смежные вопросы