Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在c中使用方法Contains和Linq搜索字符串中的数字?_C#_Linq_Lambda_Contain - Fatal编程技术网

C# 如何在c中使用方法Contains和Linq搜索字符串中的数字?

C# 如何在c中使用方法Contains和Linq搜索字符串中的数字?,c#,linq,lambda,contain,C#,Linq,Lambda,Contain,我创建了一个计算器,它的按钮上有数字和运算符,用于基本运算+,-,。。。并且只想过滤带有数字的按钮,以检测何时单击的数字在0-9之间。我还添加了新的eventhadler,它将发送者转换为按钮 我想知道使用linq过滤带有数字的按钮的好方法和简单方法是什么 到目前为止我试过的是什么 if(btn.Text == btn.Text.Contains(x => x >= '0' && x <= '9')) MessageBox.Show("number "

我创建了一个计算器,它的按钮上有数字和运算符,用于基本运算+,-,。。。并且只想过滤带有数字的按钮,以检测何时单击的数字在0-9之间。我还添加了新的eventhadler,它将发送者转换为按钮

我想知道使用linq过滤带有数字的按钮的好方法和简单方法是什么 到目前为止我试过的是什么

if(btn.Text == btn.Text.Contains(x => x >= '0' && x <= '9')) 
    MessageBox.Show("number " + btn.Text + " is pressed!");

如何使上面的代码可行?

给您,以满足您当前的需要:

if(btn.Text.All(char.IsDigit))
{
    //Do your stuff
}

如果你只想知道这是不是一个数字,那么就这么做吧。不需要LINQ

LINQ检查数字是否在0和9之间的方法

if(yourstring.ToCharArray().Where(c=> c < '0' || c > '9').Any())
  return false;
else
 return true;
或者在没有linq的情况下检查少于10个

static bool IsLessThanTen(string str)
{
    foreach (char c in str)
    {
        if (c < '0' || c > '9')
            return false;
    }

    return true;
}

如果您需要检查按钮文本中的至少一个数字,请使用下面的

return btn.Text.Any(char.IsDigit)
如果你在写计算器,最好检查一下,这应该行得通

bool hasNumeric = yourString.IndexOfAny("0123456789".ToCharArray()) > -1;

你想检查btn文本是否包含数字?我想检查btn文本的数字是否在0-9之间,而不是actionthnx man,但问题是如何使用contains方法和linq检查btn.text,这意味着如果我有一些按钮的文本btn1大于char.IsDigit,则无法工作,我想用lambda x>=0&&x thnx制作一个过滤器,用于回放,但btn.text有时也可以像btn1一样包含单词和数字,我也想过滤它们,所以我要求linq…我发布需要可用的代码,如果你能让我的例子可行,我将非常感激linq工作得很好,很容易再做一次:。。这就是我要找的
bool hasNumeric = yourString.IndexOfAny("0123456789".ToCharArray()) > -1;