Используйте оператор объединения LINQ для объединения двух типов данных IQueryable.Я бы создал новую переменную с результатом операции объединения.Отсюда группируйте по годам и используйте статистическую функцию (сумма, вероятно, будет то, что вы ищете) для выполнения вычислений.
РЕДАКТИРОВАТЬ: Вот пример.Я скажу вам, что я нахожусь в процессе изучения LINQ самостоятельно, и там есть много учебных пособий (Google - ваш друг).Я изучал LINQ в VB, который имеет несколько иной синтаксис, как C #.Я приложил все усилия, чтобы написать пример на C #, но он может быть не совсем правильным, но даст вам хорошую отправную точку.
var unionResult = dataSet1.Union(dataSet2);
var groupedResult = from r in unionResult
group r By r.Year into g
Select new
{
Year = g.Key.Year,
TotalUsed = g.Sum(r => r.AmountUsed),
TotalCollected = g.Sum(r => r.AmountCollected),
TotalSaved = g.Sum(r => r.AmountSaved
};
Если вы используете LINQ to DataSets, первая строка может потребоватьсязаменено на:
var unionResult = dataSet1.AsEnumerable().Union(dataSet2.AsEnumerable());
Вот некоторые из ресурсов (кроме Google), которые я использовал.Блог Скотта Гу (щелкните правой кнопкой мыши тег LINQ). 4 Ребята также имеет хорошие составные серии.