简而言之...
我有一个源代码管理文件夹列表,这些文件夹是使用 TFS API 从变更集中收集的,其结构如下:
$/ProjectFolder/BranchName/项目 A
$/ProjectFolder/BranchName/子文件夹/Project B
$/项目文件夹/分支名称/项目 C
以上将只包含几个项目,然后我有一个所有项目名称的列表,格式如下:
项目A
项目 B
项目 C
项目 D
我正在尝试选择一个在两个列表之间连接的新列表,然后获取一个包含第一个结构和第二个结构的匿名类型。我想我应该使用类似的东西Contains
,但是语法只equals
在尝试使用连接时提供。
我试过了:
var sourceFolders = new List<string>()
{
"$/ProjectFolder/BranchName/Project A",
"$/ProjectFolder/BranchName/Sub-Folder/Project B",
"$/ProjectFolder/BranchName/Project C"
};
var projectNames = new List<string>() { "Project A", "Project B", "Project C", "Project D"};
var filteredProjects = sourceFolders.Where(sourceFolder => projectNames.Any(x => sourceFolder.Contains(x)));
filteredProjects
将只包含sourceFolders
然而,而不是project
它已经映射过......
有任何想法吗?
期望的输出
new { SourceFolder = "$/ProjectFolder/BranchName/Project A", ProjectName = "Project A" };
new { SourceFolder = "$/ProjectFolder/BranchName/Subfolder/Project B", ProjectName = "Project B" };
new { SourceFolder = "$/ProjectFolder/BranchName/Project C", ProjectName = "Project C" };