C#数组包含部分
问题描述:
如何找到一个字符串数组是否包含字符串的某些部分? 我有这样C#数组包含部分
String[] stringArray = new [] { "[email protected]", "[email protected]", "@gmail.com" };
string str = "[email protected]"
if (stringArray.Any(x => x.Contains(str)))
{
//this if condition is never true
}
阵列我想运行此如果块时STR包含字符串多数民众赞成完全或任何阵列的项目的一部分。
答
假设你已经有了可用的LINQ:
bool partialMatch = stringArray.Any(x => str.Contains(x));
即使没有LINQ很容易:
bool partialMatch = Array.Exists(stringArray, x => str.Contains(x));
,或者使用C#2:
bool partialMatch = Array.Exists(stringArray,
delegate(string x) { return str.Contains(x)); });
如果您正在使用C# 1,那么您可能必须这样做,艰难地:)
答
如果你正在寻找,如果你的阵列中的特定字符串只包含“@ gmail.com”,而不是“[email protected]”你有几个选项。
在投入方面,也有各种各样的在这里做题,这将指向你,你需要去验证您的输入是一个有效的电子邮件地址的方向。
如果你只能在后端检查,我会做一些事情,如:
emailStr = "@gmail.com";
if(str.Contains(emailStr) && str.length == emailStr.length)
{
//your processing here
}
您还可以使用正则表达式匹配,但我几乎没有足够的熟悉与该告诉你什么花样你需要。
如果您正在寻找任何包含“@ gmail.com”的内容,Jon的答案就是您的最佳投注。
看到使用我的更新代码的片段,但它不工作。 – coure2011 2010-07-23 16:30:48
乔恩的代码在这里工作得很好。你从你的例子中错过了一些东西。 – 2010-07-23 16:34:56
请立即结帐我更新的代码。 – coure2011 2010-07-23 18:13:42