Довольно плохо знаком с LINQ и пытаюсь обернуть голову вокруг методов расширения. Что я пытаюсь сделать:
1) Иметь таблицу с тремя столбцами, col1 (строка), col2 (double), col3 (DateTime)
table1.Rows.Add("string 1", 1, new DateTime(2009, 01, 01));
table1.Rows.Add("string 1", 2, new DateTime(2009, 02, 01));
table1.Rows.Add("string 1",3, new DateTime(2009, 03, 01));
table1.Rows.Add("string 1", 4, new DateTime(2009, 04, 01));
table1.Rows.Add("string 2",1, new DateTime(2009, 05, 01));
table1.Rows.Add("string 2", 1, new DateTime(2009, 06, 01));
table1.Rows.Add("string 2", 5, new DateTime(2009, 07, 01));
table1.Rows.Add("string 3", 6, new DateTime(2009, 08, 01));
2) Мне нужно написать запрос LINQ для группировки по столбцу 1 и отправить сгруппированные строки в метод, который возвращает значение double. Как то так
var query = from t in table1
group t by t.col1 into g
select new { r1 = g.Key, r2=mycalc(g))
3) и имеют функцию расширения:
public static double Median(this IEnumerable<DataSet1.DataTable1Row> source)
{
//calc using the grouped row data and return a dobule
}
Я немного работал над этим и не совсем понял. Может кто-нибудь помочь, пожалуйста?