Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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# 对字符串执行Lambda操作以检查数字_C#_.net_Lambda - Fatal编程技术网

C# 对字符串执行Lambda操作以检查数字

C# 对字符串执行Lambda操作以检查数字,c#,.net,lambda,C#,.net,Lambda,我在学习c#时遇到了Lambda表达式。我是否可以将以下代码块转换为任意给定字符串的lambda表达式: foreach (var c in str) if (c < '0' || c > '9') return false; foreach(str中的变量c) 如果(c'9') 返回false; 在这里,我试图确保字符串只包含数字。对不起,如果它似乎太noob,但我有困难的时间包装lambda在我的头上

我在学习c#时遇到了Lambda表达式。我是否可以将以下代码块转换为任意给定字符串的lambda表达式:

        foreach (var c in str)
            if (c < '0' || c > '9')
                return false;
foreach(str中的变量c)
如果(c<'0'| c>'9')
返回false;
在这里,我试图确保字符串只包含数字。对不起,如果它似乎太noob,但我有困难的时间包装lambda在我的头上

        foreach (var c in str)
            if (c < '0' || c > '9')
                return false;

一点代码片段将非常有用。

您可以将Linq函数与以下功能结合使用:

        foreach (var c in str)
            if (c < '0' || c > '9')
                return false;

返回str.All(char.IsDigit)

您可以将Linq功能与以下功能结合使用:

        foreach (var c in str)
            if (c < '0' || c > '9')
                return false;

返回str.All(char.IsDigit)

我不确定您所说的“转换为lambda表达式”是什么意思。类似于
str.All(c=>c>='0'&&c我的意思是我想检查给定的字符串,如果它只包含数字,则返回true,否则返回false。与您当前的逻辑相匹配的Kevin解决方案的替代方案是:
str.Any(c=>c<'0'| c>'9')
@KevinGosse请注意,空字符串将返回
true
(因为没有非数字的字符)我不确定您是否确切知道您想要什么…以下是转换为Lambda表达式的代码:
str=>{foreach(var c in str){if(c<'0'| | c>'9'){return false;}}return true;}
-我怀疑这不是你想要的,但那是一个lambda表达式。你想要的是LINQ表达式还是其他类似的东西?我不确定你所说的“转换为lambda表达式”是什么意思。类似于
str.All(c=>c>='0'&&c我的意思是,我想检查给定的字符串是否只包含数字,然后返回true,否则返回false。与Kevin的解决方案相匹配的另一种方法是:
str.Any(c=>c<'0'| c>'9')
@KevinGosse注意,空字符串将返回
true
(因为没有非数字的字符)我不确定您是否确切知道您想要什么…以下是转换为Lambda表达式的代码:
str=>{foreach(var c in str){if(c<'0'| | c>'9'){return false;}}return true;}
-我怀疑这不是你想要的,但那是一个lambda表达式。你是在寻找LINQ表达式还是其他类似的东西?不完全是:
str=“۰۱۲۳۵۶”
(波斯数字)当我们在问题中有
0..9
时通过测试,并且
str=“”
(空字符串)也将通过,所以在这个答案中没有OP明确要求的lambda表达式。我不完全清楚OP想要的是纯lambda表达式还是使用lambda的linq表达式,但没有任何lamba表达式的答案似乎不是必需的…@HansKesting注意
str=“”
即使是OP的代码也会通过。@AhmedAbdelhameed true,这只是需要注意的一点:
.All()
在空列表中返回true。当它咬我时,这对我来说是意外的:-)不完全:
str=“۰۱۲۽۶”
(波斯语数字)在问题中有
0..9
时通过测试,并且
str
(空字符串)也将通过,因此此答案中没有OP明确要求的lambda表达式。我不完全清楚OP想要的是纯lambda表达式还是使用lambda的linq表达式,但没有任何lamba表达式的答案似乎不是必需的…@HansKesting注意
str=“”
即使使用OP的代码也会通过。@AhmedAbdelhameed true,这只是需要注意的:
.All()
在空列表中返回true。当它咬我时,这对我来说是意外的:-)
        foreach (var c in str)
            if (c < '0' || c > '9')
                return false;