内置功能可从系列中获取子系列?

时间:2018-10-05 09:16:04

标签: c# .net winforms charts data-visualization

我使用Chart WindowsForms ControlSystem.Windows.Forms.DataVisualization.Charting名称空间)的Series

我可以通过手动编码来获得子系列,但是是否有内置函数可以从一系列指定范围获得子系列? (如下所示的伪代码)

Series subseries = bigseries.Point.CopyTo(BeginIndex , EndIndex);

我需要处理多个序列(动态生成),并获取它们的子序列以进行进一步的数据处理。请提示是否有。这样可以节省很多精力。

3 个答案:

答案 0 :(得分:1)

我还没有尝试过,但是也许可行:

Series subSeries = new Series();
bigSeries.Points
    .Skip(BeginIndex)
    .Take(EndIndex - BeginIndex)
    .ToList().ForEach(subSeries.Points.Add);

答案 1 :(得分:0)

使用SkipTake方法从列表中动态选择项目。

var listDemo = new List<int> { 1,2,3,4,5,6,7,8};
var beginIndex = 2;
var endIndex = 2;
var result = listDemo.Skip(beginIndex).Take(endIndex).ToList();

答案 2 :(得分:0)

这是从多个系列中获取子系列并在图表上显示的部分代码。感谢@Tim Schmelter,@ Serge和其他人的宝贵答案和评论。

List<Series> ListSeries = new List<Series>();

       foreach(Series series in chart1.Series)
        {
            Series subSeries = new Series();
            series.Points.Skip(BeginIndex).Take(EndIndex - BeginIndex).ToList().ForEach(subSeries.Points.Add);
            ListSeries.Add(subSeries);
        }

        chart1.Series.Clear();

        foreach (Series series in ListSeries)
        {
            series.ChartType = SeriesChartType.Line;
            chart1.Series.Add(series);
        }
    }