C# 对字符串执行Lambda操作以检查数字
我在学习c#时遇到了Lambda表达式。我是否可以将以下代码块转换为任意给定字符串的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在我的头上
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;