Предположим, что у меня есть два списка типа MyCustomType
, класс, который может быть как это:Создать список из сравнения двух списков C#
public class MyCustomType{
public int Classification {get; set;}
public string Title {get; set;}
public string Text {get; set;}
}
Я хочу создать третий список типов Tuple<MyCustomType,MyCustomType>
, которые будет содержать какую-то «полное внешнее соединение» между ними, на основе условия (например, положить их вместе, если они получили такое же название и классификация)
Пример:
list1:
Classification Title Text
Movie 300 bla
Game Star Wars the dark side are they
list2:
Movie 300 updated bla
TV Show CSI cool
Полученный результат будет
list3:
MyCustomType MyCustomType
Movie 300 bla Movie 300 updated bla
Game Star Wars the dark side are they (null)
(null) TV Show CSI cool
Они будут соответствовать детали классификации и название, и поставить нуль на другой стороне, когда один не соответствует.
Как я могу это сделать (возможно, с помощью LINQ?)
Я занимаюсь разработкой в C#, .NET 4.0.
Я хочу это для моего экспериментального проекта для C#, «семантического» инструмента слияния C# с использованием Roslyn. Я хочу сравнить и сопоставить SyntaxNodes по типу и имени.
Можно ли использовать соединение с предикатом? поэтому я мог бы написать что-то вроде 'join y в списке2 в MatchSyntaxNode (x, y)'? –
@ConradClark, см. Мой обновленный ответ –
Во втором объявлении (var right) вместо 'join' я должен положить' from', правильно? И спасибо, это сработало. Я отмечаю как ответ. –