我知道之前已经问过,但我的代码没有工作。
Senario是我需要检查字符串是否只包含字母,数字和空格。如果它包含任何其他东西,我需要失败。
我已尝试过RegEx方法,但我不了解正则表达式,所以我需要使用LINQ方法进行评估。
这是我的代码:
if (!CSVItemArray[count].All(Char.IsLetterOrDigit) && !CSVItemArray[count].Contains(" "))
{
return false;
}
答案 0 :(得分:3)
只需检查.content
查询中的字母,数字或空格检查:
height:100%
答案 1 :(得分:2)
你的逻辑有点困惑。如果true
中的字符串仅包含字母,数字和空格,则以下内容返回CSVItemArray[count]
:
return CSVItemArray[count].All(c => Char.IsLetterOrDigit(c) || Char.IsWhiteSpace(c));
答案 2 :(得分:1)
做某事(例如使用正则表达式)因为不了解它是件坏事 - 至少对于开发人员而言。特别是如果你想要做的事情可以通过使用正则表达式轻松实现。
话虽如此,你可以简单地使用它:
Regex r = new Regex("^[A-Za-z0-9\\s]*$");
var valid = r.IsMatch(myString);
这将查找任意数量的大写或小写字符,数字和空格字符。序列本身被[]
包含,以下*
设置序列在字符串中出现的次数(在您的情况下,无uo到无限次)。 ^
和$
仅用于以字符为单位标记字符串的开头和结尾。这样可以避免%asdfgh12345 //
匹配。
编辑:如果你也需要变形金刚(ä,ö,ü,ß,......),你也可以查看处理特殊字符的this post。