Я бы выполнил преобразование в SQL, который заполняет DataTable.Это может быть встроенный SQL, хранимая процедура или ORM.
Пусть ядро базы данных сделает всю работу. Не тратьте много ресурсов на выполнение этих преобразований и вычислений в своем приложении.
Редактировать : Если вы не можете изменить процесс, генерирующий DataTable, вы можете отфильтровать его с помощью DataView RowFilter, например:
DataView dataView = dataTable1.DefaultView;
dataView.RowFilter = string.Format("Month = '{0}' && Year = '{1}'", Month, Year);
Вот потрясающая страница примеров с демонстрациями и кодом .