使用LINQ检查字符串中是否至少有一个数字


73

我想知道最简单和最短的LINQ查询是什么,如果字符串中包含任何数字字符,则返回true。


3
@saul对赏金有何处理?标记的答案是可信的。
杰里米·汤普森

Answers:



15

尝试这个

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

用法

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

4
或者只是input.Any(x => Char.IsDigit(x));
mmx

@Mehrdad,是的,我经常忘记这种超载
JaredPar

10

或可能使用正则表达式:

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

0

这个怎么样:

bool test = System.Text.RegularExpressions.Regex.IsMatch(test, @"\d");

0
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 ";   /
        }

我认为这并不能真正回答问题,因为该问题对简短查询很感兴趣,并且已经有很多简洁的查询了。
JHobern 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.