对 LINQ 相当陌生,并试图将我的头脑围绕在扩展方法上。我正在尝试做的事情:
1)有一个三列的表,col1(字符串),col2(双),col3(日期时间)
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
}
我已经为此工作了一段时间,但不太明白。有人可以帮忙吗?