как красиво написать через LINQ
От: Аноним  
Дата: 29.05.13 00:28
Оценка:
В MS SQL то, что мне нужно делается так:


select sum(value1), avg(value2) 
from MyTable 
where not name is null


в C# (MyTable зачитывается в DataTable dtMyTable) искомые значения находятся так:




double @value1 = (from dr in dtMyTable.AsEnumerable()
                  where !Convert.IsDBNull(dr["name"])
                  select Convert.ToDouble(dr["value1"])).Sum();

double @value2 = (from dr in dtMyTable.AsEnumerable()
                  where !Convert.IsDBNull(dr["name"])
                  select Convert.ToDouble(dr["value2"])).Average();



Можно ли это как-то изящнее переписать? Мне не нравится что


from dr in dtMyTable.AsEnumerable()
where !Convert.IsDBNull(dr["name"]



повторяется (это для примера, реальное выражение может быть сложнее, условие WHERE сложнее и может быть больше функций MIN, MAX, COUNT итд, а не только две)

Спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.