Уродливый оператор LINQ, лучший способ?

У меня есть оператор LINQ, который складывает значения нескольких столбцов, каждый из которых начинается с 'HH', хотя есть и другие столбцы:

//TODO Clean up this mess
var query1 = (from e in Data
                where e.SD == date
                select e).Select(x =>   x.HH01 + x.HH16 + x.HH17 + x.HH18 + x.HH19 + x.HH20 + x.HH21 + x.HH22 + x.HH23 +
                                        x.HH24 + x.HH25 + x.HH26 + x.HH27 + x.HH28 + x.HH29 + x.HH30 + x.HH31 + x.HH32 + 
                                        x.HH33 + x.HH34 + x.HH35 + x.HH36 + x.HH37 + x.HH38 + x.HH39 + x.HH40 + x.HH41 +
                                        x.HH42 + x.HH43 + x.HH44 +x.HH45 + x.HH46 + x.HH47 + x.HH48 + x.HH49.GetValueOrDefault()+
                                        x.HH50.GetValueOrDefault());

return query1.FirstOrDefault();

Есть ли способ привести это в порядок? Мне приходится делать много вариаций этого (в разных методах), так что это избавило бы от большого количества "пуха", если бы это было возможно.

Также я хотел бы вызывать .GetValueOrDefault() на каждом столбце, но сейчас я убрал это из-за беспорядка, кроме последних двух столбцов.

Предложения приветствуются!

7
задан Oded 18 January 2012 в 11:11
поделиться