В двух словах ...Объединение двух списков на основе условий, отличных от равняется
У меня есть список папок, управлений версий, которые собраны из ревизий, используя API TFS в структуре:
$/ProjectFolder/BranchName/Проект A
$/ProjectFolder/BranchName/подпапок/Проект B
$/ProjectFolder/BranchName/Проект C
выше будет только выбрать несколько проектов, включенных, то у меня есть список имен всех проектов в формате:
Проект A
Проект B
проекта C
Проект D
Я пытаюсь выбрать новый список, который имеет соединение между двумя списками, а затем получить анонимный тип, который содержит 1-ю структуру, и вторую структуру. Я думаю, что я должен использовать что-то вроде 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" };
Это не для меня ясно, что ваш желаемый результат. Я предполагаю, что два списка, которые вы здесь написали, являются вводом. – Dialecticus
@ Dialecticus Я предполагаю, что вы проголосовали, я опубликовал желаемый результат - я думал, что объяснение было довольно ясным. Я надеюсь, что это прояснилось :) – LukeHennerley
Теперь ясно, но я не ваш спутник. Вы получаете +1 за усилие, хотя :) – Dialecticus