Проверьте, есть ли в строке хотя бы одно число, используя LINQ


Я хотел бы знать, что самый простой и короткий запрос LINQ должен возвращать true, если строка содержит какой-либо числовой символ в нем.

5 63

5 ответов:

"abc3def".Any(c => char.IsDigit(c));

обновление: как @Cipher указал, что на самом деле это может быть сделано еще короче:

"abc3def".Any(char.IsDigit);

попробуй такое

public static bool HasNumber(this string input) {
  return input.Where(x => Char.IsDigit(x)).Any();
}

использование

string x = GetTheString();
if ( x.HasNumber() ) {
  ...
}

или возможно с помощью регулярного выражения:

string input = "123 find if this has a number";
bool containsNum = Regex.IsMatch(input, @"\d");
if (containsNum)
{
 //Do Something
}

Как насчет этого:

bool test = System.Text.RegularExpressions.Regex.IsMatch(test, @"\d");
string number = fn_txt.Text;   //textbox
        Regex regex2 = new Regex(@"\d");   //check  number 
        Match match2 = regex2.Match(number);
        if (match2.Success)    // if found number 
        {  **// do what you want here** 
            fn_warm.Visible = true;    // visible warm lable
            fn_warm.Text = "write your text here ";   /
        }