我有一个字符串数组

string[] tmp = foo();

如果foo中的字符串中没有一个包含“bar”或“baz”,我想执行一些代码。
这是查询此对象的正确方法吗?
if(!tmp.Any(p => p.ToLower().Contains("bar") || p.ToLower().Contains("baz"))
 doSomething();

||看起来很傻。我应该在这里使用正则表达式,还是有更好的方法呢? ***还请注意,tmp中的值就像"bar=someValue"一样,如查询字符串。这段代码可以正常工作,但是我敢肯定它可以写得更好。感谢您提供任何反馈提示。

最佳答案

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

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

关于c# - Linq在C#中查询字符串数组是否包含两个值之一?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13381930/

10-11 01:45
查看更多