You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF LiveChart中如何初始化含30个值的Decimal类型ChartValues列表

解决WPF LiveChart初始化30个占位值的ChartValues问题

你遇到的「Index out of range」错误原因很明确:刚创建的SeriesCollection是空的,里面还没有任何Series实例,直接访问MonthProfit[0]自然会报索引越界——因为这个位置根本不存在任何对象。

要实现初始化一个包含30个Decimal占位值的ChartValues列表,你需要按以下步骤来:

  1. 先创建一个具体的Series(比如LineSeries,LiveChart常用的系列类型)
  2. 给这个Series的Values属性初始化一个包含30个占位值的ChartValues<decimal>
  3. 将这个Series添加到你的SeriesCollection中

完整代码示例

初始化部分

public SeriesCollection MonthProfit { get; set; } = new SeriesCollection();

// 在构造函数或者初始化方法里执行以下代码
// 创建LineSeries,并初始化Values为30个默认0的decimal值
var profitSeries = new LineSeries
{
    Values = new ChartValues<decimal>(Enumerable.Repeat(0m, 30))
};
// 将Series添加到集合中
MonthProfit.Add(profitSeries);

修改指定索引的值

现在你就可以安全地访问并修改对应位置的值了:

// 修改第0个位置的值为25
MonthProfit[0].Values[0] = 25;
// 如果需要修改其他位置,比如第10个
// MonthProfit[0].Values[10] = 50;

额外说明

如果你不想用0m作为占位值,只需要把Enumerable.Repeat(0m, 30)里的0m换成你需要的默认Decimal值即可,比如100m或者decimal.MinValue都可以。

内容的提问来源于stack exchange,提问作者Magheggio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:55:36