Linq过滤List,其中包含另一个List中的字符串值。

13 浏览
0 Comments

Linq过滤List,其中包含另一个List中的字符串值。

我有两个List对象(简化):

var fileList = Directory.EnumerateFiles(baseSourceFolderStr, fileNameStartStr + "*", SearchOption.AllDirectories);
var filterList = new List();
filterList.Add("ThisFolderName");
filterList.Add("ThatFolderName");

我想要过滤fileList,只返回包含filterList中任何文件夹名称的文件。(希望这样说得清楚..)

我尝试了以下表达式,但始终返回一个空列表。

var filteredFileList = fileList.Where(fl => fl.Any(x => filterList.Contains(x.ToString())));

我似乎无法理解为什么什么都没有,显然我漏了什么,但我不知道是什么。

[编辑]

好吧,看起来我在问题中应该更清楚,我试图在我的fileList中搜索包含filterList中字符串值的子字符串的文件。我已经标记了下面的答案,供那些试图做类似事情的人参考。

0