c# - 将项目插入循环内索引为零的可观察集合仅适用于第一次迭代
问题描述
用一些数据填充 ObservableCollection 后,如果数据集不足以填充我的图表,我想填充它。为此,我在循环内的索引零处插入数据,因此填充始终位于集合的开头。第一次迭代运行良好,但下一次迭代失败
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
我错过了什么?
private void PadDataSet<T>(ObservableCollection<T> dataSet, DateTime minDataTimePeriod, int minuteIntervals)
{
var paddedList = new List<DataItem>();
var neededIntervals = _timescaleHours * 60 / minuteIntervals + 1;
var actualIntervals = dataSet.Count();
var padCount = neededIntervals - actualIntervals;
for (var i = 0; i < padCount; i++)
{
var g = Activator.CreateInstance<T>();
var item = g as DataItem;
if (item != null)
{
item.TimePeriod = minDataTimePeriod.AddMinutes(-minuteIntervals * (i + 1));
dataSet.Insert(0, g);
}
}
}
解决方案
推荐阅读
- lua - LUA 字符串,删除非字母数字或空格
- r - 我的循环正常运行,但在单个文件上突然失败
- cron - 等待 5 分钟 ---- 运行作业 ---- 作业完成 ---- 等待 5 分钟 .... 等等
- python - 如何从列表列表中创建矩阵彩色图(Python)
- javascript - 在制作动画时对值进行 React Native 访问
- mysql - 优雅地忽略具有 NULL 值的无效日期
- bots - 如何将反应存储到 quick.db
- java - 排序出来的随机数数组
- python - 为什么我的 create_rectangle 在使用 tkinter 指定这些点后消失了?
- csv - 从 CSV 附件发送自动电子邮件