【问题标题】:Comparing two lists and removing each item that contains an entry from the other list比较两个列表并从另一个列表中删除包含条目的每个项目
【发布时间】:2020-07-10 09:41:43
【问题描述】:

我正在尝试将fileManifest 中的所有列表项复制到新初始化的列表中。
我还没有找到除了嵌套的 foreach 循环之外,这是一种优雅的方式。

是否有人偶然有更好的解决方案来解决这个问题?也许LINQ

var fileManifest = new List<string>()
{
   @"C:\Test\Directory1\File1.xml",
   @"C:\Test\Directory1\File2.xml",
   @"C:\Test\Directory1\Directory2\File1.xml",
};

var exclusionFilters = new List<string>()
{
  @"Directory2\"
};

var filteredList = new List<string>();

filteredList 的预期输出:

  • C:\Test\Directory1\File1.xml
  • C:\Test\Directory1\File2.xml

【问题讨论】:

  • 应该包含还是排除@"C:\Test\OtherDirectory2\File3.xml"?请注意,OtherDirectory2

标签: c# linq generics


【解决方案1】:
var filteredList = fileManifest.Where(x => exclusionFilters.All(y => !x.Contains(y))).ToList();

说明:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    相关资源
    最近更新 更多