简体   繁体   中英

C# Array contains partial

How to find whether a string array contains some part of string? I have array like this

String[] stringArray = new [] { "abc@gmail.com", "cde@yahoo.com", "@gmail.com" };
string str = "coure06@gmail.com"

if (stringArray.Any(x => x.Contains(str)))
{
    //this if condition is never true
}

i want to run this if block when str contains a string thats completely or part of any of array's Item.

Assuming you've got LINQ available:

bool partialMatch = stringArray.Any(x => str.Contains(x)); 

Even without LINQ it's easy:

bool partialMatch = Array.Exists(stringArray, x => str.Contains(x));

or using C# 2:

bool partialMatch = Array.Exists(stringArray,
      delegate(string x) { return str.Contains(x)); });

If you're using C# 1 then you probably have to do it the hard way :)

If you're looking for if a particular string in your array contains just "@gmail.com" instead of "abc@gmail.com" you have a couple of options.

On the input side, there are a variety of questions here on SO which will point you in the direction you need to go to validate that your input is a valid email address.

If you can only check on the back end, I'd do something like:

emailStr = "@gmail.com";
if(str.Contains(emailStr) && str.length == emailStr.length)
{
  //your processing here
}

You can also use Regex matching, but I'm not nearly familiar enough with that to tell you what pattern you'd need.

If you're looking for just anything containing "@gmail.com", Jon's answer is your best bets.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM