I have a list of parameters like this:
public class parameter
{
public string name {get; set;}
public string paramtype {get; set;}
public string source {get; set;}
}
IEnumerable<Parameter> parameters;
And a array of strings i want to check it against.
string[] myStrings = new string[] { "one", "two"};
I want to iterate over the parameter list and check if the source property is equal to any of the myStrings array. I can do this with nested foreach’s but i would like to learn how to do it in a nicer way as i have been playing around with linq and like the extension methods on enumerable like where etc so nested foreachs just feel wrong. Is there a more elegant preferred linq/lambda/delegete way to do this.
Thanks
You could use a nested
Any()for this check which is available on anyEnumerable:Faster performing on larger collections would be to project
parameterstosourceand then useIntersectwhich internally uses aHashSet<T>so instead of O(n^2) for the first approach (the equivalent of two nested loops) you can do the check in O(n) :Also as a side comment you should capitalize your class names and property names to conform with the C# style guidelines.