在C#中查找对字符串数组的无效字符检查

时间:2016-12-22 10:06:47

标签: c# string linq

我想检查字符串数组中的无效字符到UrlEncode。如何使用LINQ实现?

这是我的代码:

string str = "myname@gmail.comAndIhave$5000";
List<string> invalidChars = new List<string> { "@", "$" }
if (str.IndexOf(invalidChars) >= 0)  // put linq to loop
{ str = System.Net.WebUtility.UrlEncode(str); }

请咨询!

3 个答案:

答案 0 :(得分:0)

使用AnyContains

string str = "mynamegmail.comAndIhave5000";
List<string> invalidChars = new List<string> { "@", "$" };
if (invalidChars.Any(invalid => str.Contains(invalid))) { 
        // do work
}

答案 1 :(得分:0)

您需要将字符串转换为字符串列表,然后比较无效字符是否存在的字符串列表,

string str = "myname@gmail.comAndIhave$5000";
List<string> invalidChars = new List<string> { "@", "$" };

var strList = str.Select(c => c.ToString());

if (strList.Any(invalidChars.Contains))
{
   //Found
}

答案 2 :(得分:0)

许多可能的解决方案之一:

var str = "myname@gmail.comAndIhave$5000";

var invalidChars = new[] { '@', '$' };

var invalidCharsFound = str.Intersect (invalidChars);

bool hasInvalidChars = invalidCharsFound.Any ();

invalidCharsFound.Dump (); // LinqPad
hasInvalidChars.Dump ();

Code result