多个|| 在哪里

Joh*_*ohn 0 c# linq

我试图在我的where子句之后根据数组中的字符串数量有多个||.

string[] searchStrings = new string[]{"test", "tester", "test3"};

var files = Directory.EnumerateFiles("FolderPath", "*.*", SearchOption.AllDirectories)
                     .Where(s => s.Contains(searchStrings[0]) || s.Contains(searchStrings[1]));
Run Code Online (Sandbox Code Playgroud)

它应该做的是在文件夹中搜索文件,如果文件名包含数组中的每个关键字,那么它将被放入文件中.目前我可以通过添加更多||来硬编码多少次搜索,但我想知道有没有办法根据searchStrings数组的大小自动执行此操作.

Ana*_*uza 6

你可以使用.Any()例如:

.Where(dir => searchStrings.Any(s => dir.Contains(s)));
Run Code Online (Sandbox Code Playgroud)

通过检查目录名是否包含至少一个来自集合的searchString,它将允许获得所需的结果searchStrings.