Вот моя точка зрения:
вот класс данных:
class Data
{
public string name;
public int version;
}
вот списки данных:
Ilist<Data> List_old = {new Data{name = "1", version = 1}, new Data{name = "2", version = 1}};
Ilist<Data> List_new = {new Data{name = "1", version = 2}, new Data{name = "3", version = 1}, new Data{name = "2", version = 1}};
В результате мне нужен список кортежей - IList<Tuple<Data, Data>>
- первый объект данных взят из List_new, второй из List_old, взятый по критериям - объекты данных имеют то же имя, но - первый имеет большую версию, чем второй ИЛИ, второй - ноль если в List_old нет ни одного элемента данных с таким же именем из List_new.
Учитывая, что результат должен быть:
IList<Tuple<Data, Data>> result = { {List_new[0], List_old[0]}, {List_new[1], null}};
Не могли бы вы помочь с кодом LINQ, который может это выполнить?
Я взрываю свои мозги этим ...