gpt4 book ai didi

c# - Linq 过滤器 List 其中包含来自另一个 List 的字符串值

转载 作者:IT王子 更新时间:2023-10-29 04:18:04 25 4
gpt4 key购买 nike

我有 2 个列表对象(简化):

var fileList = Directory.EnumerateFiles(baseSourceFolderStr, fileNameStartStr + "*", SearchOption.AllDirectories);

var filterList = new List<string>();
filterList.Add("ThisFolderName");
filterList.Add("ThatFolderName");

我想过滤 fileLst 以仅返回包含 filterList 中任何文件夹名称的文件。 (我希望这是有道理的..)

我试过下面的表达式,但这总是返回一个空列表。

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

我似乎无法理解为什么我一无所获,显然我错过了一些东西,但我不知道是什么。

[编辑]

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

最佳答案

它更容易:

fileList.Where(item => filterList.Contains(item))

如果您不想过滤完全匹配而是过滤“包含”,您可以使用此表达式:

var t = fileList.Where(file => filterList.Any(folder => file.ToUpperInvariant().Contains(folder.ToUpperInvariant())));

关于c# - Linq 过滤器 List<string> 其中包含来自另一个 List<string> 的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15879771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com