C# 如何对不同系列中的所有列进行排序
我有一些关于人员工作时间的数据。为了显示这些数据,我使用了VisualStudio图表(c语言)。这些数据分为两个图表系列。当我想对所有列进行排序时,它们一直在对序列成员进行排序,但我想对所有列进行排序,以找到前10名成员。你能做什么C# 如何对不同系列中的所有列进行排序,c#,sorting,charts,C#,Sorting,Charts,我有一些关于人员工作时间的数据。为了显示这些数据,我使用了VisualStudio图表(c语言)。这些数据分为两个图表系列。当我想对所有列进行排序时,它们一直在对序列成员进行排序,但我想对所有列进行排序,以找到前10名成员。你能做什么 private void TakeSeries() { var q1 = (from n1 in db.tblSelectedOperation join n2 in db.Operations
private void TakeSeries()
{
var q1 = (from n1 in db.tblSelectedOperation
join n2 in db.Operations
on n1.OpCode equals n2.OperationCode
select new { n2.OperationName }).ToList();
foreach (var item in q1)
{
if (chart1.Series.FindByName(item.OperationName) == null)
{
Series ser = new Series(item.OperationName);
chart1.Series.Add(ser);
chart1.Series[item.OperationName].IsValueShownAsLabel = true;
chart1.Series[item.OperationName].LabelBackColor = Color.White;
}
}
}
//---------------------------------------------------------
//-------------------------------------
#region showValueInChart
//var q1 = db.usp_ForGroupsOfProductionWithScore(Setting.Setting.Date()).ToList();
chart1.ChartAreas["ChartArea1"].AxisX.Interval = 1;
foreach (var item in chart1.Series)
{
chart1.Series[item.Name.ToString()].Points.Clear();
var q0 = q1.Where(n => n.OperationName == item.Name.ToString()).ToList();
if (q0 != null)
{
foreach (var item1 in q0)
{
chart1.Series[item1.OperationName].Points.AddXY(item1.personName.ToString(), (int)(item1.Score));
}
}
chart1.AlignDataPointsByAxisLabel();
}
chart1.ChartAreas["ChartArea1"].AxisY.LabelStyle.Enabled = true;
#endregion
我找到了。。我无法按需要对图表列进行排序,因为我已按序列顺序添加了数据。。 从代码中删除这些行后,图表排序正确
#region showValueInChart
q1 = q1.OrderByDescending(n => n.Score).ToList();
chart1.ChartAreas["ChartArea1"].AxisX.Interval = 1;
foreach (var item in chart1.Series)
{
chart1.Series[item.Name.ToString()].Points.Clear();
}
//var q0 = q1.Where(n => n.OperationName == item.Name.ToString()).OrderByDescending(n => n.Score).ToList();
//if (q0 != null)
//{
//q0 = q0.OrderByDescending(n => n.Score).ToList();
foreach (var item1 in q1)
{
chart1.Series[item1.OperationName].Points.AddXY(item1.personName.ToString(), (int)(item1.Score));
chart1.AlignDataPointsByAxisLabel();
}
//}
chart1.ChartAreas["ChartArea1"].AxisY.LabelStyle.Enabled = true;
#endregion
哪个UI框架是Winforms?WPF,Asp.Net?以及您使用的图表库?非常重要:发布你的代码。。有关更多信息,请参阅。@SriramSakthivel:我想这是WPF。。图书馆:数据可视化来吧,你应该知道这一点!它是哪一个:System.Web.UI.DataVisualization.Charting还是System.Windows.Forms.DataVisualization.Charting??-您不需要对列进行排序,您需要对数据进行排序!这是我的图表:这是我想要排序的示例:@TaW:“使用System.Windows.Forms.DataVisualization.Charting;”-我使用了搜索时找到的所有排序函数和方法。但它们都没有对图表列进行排序。我在使用之前对“q1 var”进行了排序,或者对“q0”进行了排序,但在所有这些之后,仍然对series group中的列进行了排序。例如,我使用了:-q1.orderby(n=>n.score)/\\q0.orderby(n=>n.score))-chart1.DataManipulator.Sort(PointSortOrder.Descending,item.Name.ToString());-chart1.Series[0]。排序(PointSortOrder.Descending);但它们的排序和我想要的不一样。。