c#混淆了什么类型的数组和用法

本文关键字:数组 用法 类型 什么 | 更新日期: 2023-09-27 18:27:44

我是c#的新手,正在尝试构建一个项数组数组。我看过2d阵列和锯齿状阵列,根本无法计算出我应该使用什么,也无法使其工作。与其说是构建数组,不如说是循环遍历数组来询问数组元素。我在一个现有的库中工作,所有变量都来自这个库,我遗漏了大多数其他支持代码,因为它们不相关。一旦找到一个实例,我就会尝试将字段从0更新为1。非常感谢您提前提供的帮助。

//Declare array
private double[,] myOpenTrades;
private void mymethod  (double score, double RSIComboScore, int type, int line)
{
myOpenTrades[line,0] = type;
myOpenTrades[line,1] = CurrentBar;
myOpenTrades[line,2] = Close[0];
myOpenTrades[line,3] = rewardClose;
myOpenTrades[line,4] = riskClose;
myOpenTrades[line,5] = score;
myOpenTrades[line,6] = RSIComboScore;
myOpenTrades[line,7] = this.getSMATrend();
myOpenTrades[line,8] = Math.Round(NSRSICS(5, 15, 60, 240).Rsi200AVGPlot[0]);
myOpenTrades[line,9] = myReward;
myOpenTrades[line,10] = myRisk;
myOpenTrades[line,11] = 0;

}

protected override void OnMyChange()
        {
            foreach(double[] row in myOpenTrades)
            {
                if(Close[0] >= row[3] && row[11]==0)
                {
                    Print("WIN:"+row[10]);
                    row[11]=1;
                }
                else if(Close[0] >= row[4] && row[11]==0)
                {
                    Print("LOSE:"+row[9]);
                    row[11]=1;
                }
            }
{

c#混淆了什么类型的数组和用法

我不知道为什么会被否决,这似乎是一个付出了一些努力的新用户提出的合理问题。

为了回答您的问题,阵列阵列不是最佳选择,因为从逻辑组织的角度来看,您没有相同项目的"网格"(即2D阵列),而是将多个项目作为一个记录和一个记录阵列。更不用说你似乎在尝试混合和匹配类型;数组被声明为double,但第一条记录type是一个整数。

我建议使用class,如下所示:

class OpenTrades
{
    public int Type;
    public Bar CurrentBar;
    public double Score;
    // etc...
}

(这是假设CurrentBar的类型是Bar;您必须用实际类型的Bar替换它。)

然后,您将实例化类的一个数组,如下所示:

OpenTrades[] myOpenTrades = new OpenTrades[11];    // This will create an array of 11 elements, indices 0 to 10

现在,在mymethod函数中,您可以为每个成员分配值。

myOpenTrades[line].Type = type;
myOpenTrades[line].Bar = CurrentBar;
myOpenTrades[line].Score = score;
// etc ...