我有一个看起来像这样的数据表:
Row Side Value
1 A 34.8
1 B 33.9
1 C 33.1
2 A 32.6
2 B 32.0
2 C 35.7
3 A 34.6
3 B 34.0
3 C 33.5
Run Code Online (Sandbox Code Playgroud)
我需要做的一件事是计算我喜欢的每一行的平均值:
var avg = (from row in dt.AsEnumerable()
group row by new { RowMeas = row.Field<string>("Row") } into grp
select new
{
RowMeas = grp.Key.RowMeas,
AVG = grp.Average(r => r.Field<double>("Value"))
}).ToList();
Run Code Online (Sandbox Code Playgroud)
现在我需要做类似的事情,但不是仅仅取平均值我想为每一行使用一个公式 4*A + 3*B + 2*C
我可以使用上面的LINQ这样做,但不是AVG以某种方式工作这个公式吗?在其他软件中,我们通过转置数据表来手动执行此计算,以便有A,B,C列,然后可以在新列的公式中使用.由于在C#中没有一种简单的转置方法,我希望我能用LINQ做到这一点.
我正在使用 C# 构建 winform 点图,其中数据来自数据表。我创建了这样的点:
chart1.Series.Add("series1");
chart1.Series["series1"].ChartType = SeriesChartType.Point;
chart1.Series["series1"].YValueMembers = "VALUE";
chart1.Series["series1"].XValueMember = "DATE";
chart1.DataSource = dt;
Run Code Online (Sandbox Code Playgroud)
我希望能够根据数据表 dt 中称为产品的第三列使用不同的颜色/符号来制作图表上的点的图例。我已经尝试了很多方法来完成此任务,但没有任何效果。我怎样才能做到这一点?