Linq查询c#中的字符串数组是否包含两个值中的任何一个?

Hca*_*tek 5 c# linq string

我有一个字符串数组

string[] tmp = foo();
Run Code Online (Sandbox Code Playgroud)

如果foo中没有字符串包含"bar"或"baz",我想执行一些代码.这是查询此对象的正确方法吗?

if(!tmp.Any(p => p.ToLower().Contains("bar") || p.ToLower().Contains("baz"))
 doSomething(); 
Run Code Online (Sandbox Code Playgroud)

|| 看起来很傻.我应该在这里使用正则表达式还是有更好的方法来做这个?***另请注意,tmp中的值"bar=someValue"与查询字符串类似.这段代码工作正常,但我确信它可以写得更好.感谢您提供反馈意见.

L.B*_*L.B 4

好点?我不知道,但应该可以。

if(!tmp.Select(x => x.Split('=')[0])
                    .Intersect(new[] { "foo", "baz" }, 
                               StringComparer.InvariantCultureIgnoreCase).Any())
    doSomething();
Run Code Online (Sandbox Code Playgroud)