c# 导致问题的最后 26 个结果的最小值最大值
c# Min Max of the last 26 results causing Problems
大家好,我对以下问题感到绝望我需要我在名为 "MyCotDataList" 的 csv 中获得的 2 个值的最后 26 个结果的最小值和最大值。经过一番研究后,我尝试了这种方式:
MyCotDataList.Add(new COTData_Obj
{
Time = DateTime.Parse(split[0]),
CN = double.Parse(split[5]) - double.Parse(split[6]),
});
var last26CnValues = MyCotDataList
.AsEnumerable()
.Reverse()
.Take(26)
.Select(x => x.CN)
.ToArray();
MyCotDataList.Add(new COTData_Obj
{
Min = last26CnValues.Min(),
Max = last26CnValues.Max(),
}
);
但现在输出中不再是正确的数字,我现在每秒得到一个零值 i return。使我用数据创建的图表上的一条线呈锯齿形排列。
如果我 /**/ 输出
/* var last26CnValues = MyCotDataList
.AsEnumerable()
.Reverse()
.Take(26)
.Select(x => x.CN)
.ToArray();
MyCotDataList.Add(new COTData_Obj
{
Min = last26CnValues.Min(),
Max = last26CnValues.Max(),
}
); */
它正确显示 CN
如果我让它再次保持曲折。
我没有遇到任何编译错误,它根本没有按照我的意图进行,这显然是由于我缺乏 c# 技能。
你能帮我解决这个问题或给我一些提示吗? :D
非常感谢!
因为这部分代码在您的列表中添加了一个新的 COTData_Obj
对象,其中 CN
值为零。因为你没有设置 CN
并且它默认为 0。而之前添加的对象Min
和Max
为零,因为你没有设置这些
MyCotDataList.Add(new COTData_Obj
{
Min = last26CnValues.Min(),
Max = last26CnValues.Max(),
}
您应该将其设置为列表中已有的对象。我想这应该可行
COTData_Obj row = new COTData_Obj
{
Time = DateTime.Parse(split[0]),
CN = double.Parse(split[5]) - double.Parse(split[6]),
};
MyCotDataList.Add(row);
var last26CnValues = MyCotDataList
.AsEnumerable()
.Reverse()
.Take(26)
.Select(x => x.CN)
.ToArray();
row.Min = last26CnValues.Min();
row.Max = last26CnValues.Max();
大家好,我对以下问题感到绝望我需要我在名为 "MyCotDataList" 的 csv 中获得的 2 个值的最后 26 个结果的最小值和最大值。经过一番研究后,我尝试了这种方式:
MyCotDataList.Add(new COTData_Obj
{
Time = DateTime.Parse(split[0]),
CN = double.Parse(split[5]) - double.Parse(split[6]),
});
var last26CnValues = MyCotDataList
.AsEnumerable()
.Reverse()
.Take(26)
.Select(x => x.CN)
.ToArray();
MyCotDataList.Add(new COTData_Obj
{
Min = last26CnValues.Min(),
Max = last26CnValues.Max(),
}
);
但现在输出中不再是正确的数字,我现在每秒得到一个零值 i return。使我用数据创建的图表上的一条线呈锯齿形排列。
如果我 /**/ 输出
/* var last26CnValues = MyCotDataList
.AsEnumerable()
.Reverse()
.Take(26)
.Select(x => x.CN)
.ToArray();
MyCotDataList.Add(new COTData_Obj
{
Min = last26CnValues.Min(),
Max = last26CnValues.Max(),
}
); */
它正确显示 CN 如果我让它再次保持曲折。 我没有遇到任何编译错误,它根本没有按照我的意图进行,这显然是由于我缺乏 c# 技能。
你能帮我解决这个问题或给我一些提示吗? :D 非常感谢!
因为这部分代码在您的列表中添加了一个新的 COTData_Obj
对象,其中 CN
值为零。因为你没有设置 CN
并且它默认为 0。而之前添加的对象Min
和Max
为零,因为你没有设置这些
MyCotDataList.Add(new COTData_Obj
{
Min = last26CnValues.Min(),
Max = last26CnValues.Max(),
}
您应该将其设置为列表中已有的对象。我想这应该可行
COTData_Obj row = new COTData_Obj
{
Time = DateTime.Parse(split[0]),
CN = double.Parse(split[5]) - double.Parse(split[6]),
};
MyCotDataList.Add(row);
var last26CnValues = MyCotDataList
.AsEnumerable()
.Reverse()
.Take(26)
.Select(x => x.CN)
.ToArray();
row.Min = last26CnValues.Min();
row.Max = last26CnValues.Max();