首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将List<double>转换为LiveCharts.IChartValues

将List<double>转换为LiveCharts.IChartValues
EN

Stack Overflow用户
提问于 2017-03-22 14:45:02
回答 4查看 7K关注 0票数 4

我想用LiveCharts在一个图中绘制我的双值。但我无法改变我的价值观。我知道错误:

代码语言:javascript
复制
Cannot convert source type 'System.Collections.Generic.List<double>
to target type 'LiveCharts.IChartValues'

这是我的代码(可能不需要):

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Media;
using LiveCharts;
using LiveCharts.Wpf;
using Brushes = System.Windows.Media.Brushes;

namespace LiveAnalysis
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();


            var xvals = new List<DateTime>();
            var yvals = new List<double>();

            using (var db = new SystemtestFunctions.TestingContext())
            {
                var lttResults = db.LttResults;
                var par1 = 0.0;
                foreach (var data in lttResults)
                {
                    if (data.GatewayEventType == 41)
                        par1 = data.FloatValue;
                    if (data.GatewayEventType != 42) continue;

                    var par2 = data.FloatValue;
                    var diff = Math.Round(par1 - par2, 3);
                    yvals.Add(diff);
                    xvals.Add(data.DateTime);
                }
            }

            cartesianChart1.Series = new SeriesCollection
            {
                new LineSeries
                {
                    Title = "Series 1",
                    Values = yvals,
                },
            };
        }
    }
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-03-22 19:54:26

除了@Pikoh的答案之外,您还可以使用IEnumerable扩展将任何AsChartValues()转换为ChartValues实例:

代码语言:javascript
复制
cartesianChart1.Series = new SeriesCollection
        {
            new LineSeries
            {
                Title = "Series 1",
                Values = yvals.AsChartValues(),
            },
        };
票数 9
EN

Stack Overflow用户

发布于 2017-03-22 15:12:28

LiveCharts LineSeries在其Values属性中期望有一个类型为ChartValues的变量。因此,在这种情况下,您应该更改:

代码语言:javascript
复制
var yvals = new List<double>();

转入:

代码语言:javascript
复制
var yvals = new ChartValues<double>();
票数 1
EN

Stack Overflow用户

发布于 2017-09-20 12:32:19

代码语言:javascript
复制
cartesianChart1.Series = new SeriesCollection
    {
        new LineSeries
        {
            Title = "Series 1",
            Values = new ChartValues<double>(yvals)
        },
    };
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42954967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档