c# - 如果包含两个值中的任何一个,Linq 在 C# 中查询字符串数组?

标签 c# string linq

我有一个字符串数组

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/

相关文章:

javascript - 如何通过 Thymeleaf 将字符串值从 Spring 模型正确转换为 JavaScript 的字符串变量?

java - 使用 indexOf 时类似于 equalsIgnoreCase

c# - 有做笛卡尔积的好 LINQ 方法吗?

c# - 使用 EF 在 db 中建模树状结构

c# - 枚举器作为参数

c# - 如何在没有 GAC 的情况下使用 ApplicationManager 加载对象?

c# - URL 的编码参数

arrays - 用于绘图的元胞数组到数值数组

c# - 如何在使用泛型时指定匿名类型的类型

c# - 如何在 C# 中以原子方式交换 2 个整数?