如何添加两个列表<&燃气轮机;在运行时?索引超出范围错误我的代码已附加(ASP.net C#)

如何添加两个列表<&燃气轮机;在运行时?索引超出范围错误我的代码已附加(ASP.net C#),c#,asp.net,.net,list,indexing,C#,Asp.net,.net,List,Indexing,我试图通过将一个列表的第一个索引值添加到另一个列表的第一个索引值来在循环中添加两个列表,但这两个列表都是在计算后的运行时填充的,问题是如何跟踪该列表在该索引处是否具有值,如下所示 Result[var]=first[var]+second[var] 完整的代码如下所示 List<double> Result = new List<double>(); for (int var = 0; var < 30; var++) {

我试图通过将一个列表的第一个索引值添加到另一个列表的第一个索引值来在循环中添加两个列表,但这两个列表都是在计算后的运行时填充的,问题是如何跟踪该列表在该索引处是否具有值,如下所示

Result[var]=first[var]+second[var]
完整的代码如下所示

List<double> Result = new List<double>();
        for (int var = 0; var < 30; var++)
        {
            if (first[var] == null)
            {
                first[var] = 0;
            }
            if (second[var] == null)
            {
                second[var] = 0;
            }
        }

       Result[var]=first[var]+second[var];
}
如果加上

A list[11]+B list[11]= 
然后从第二个列表中添加0,因为它只有10个值,然后如何验证b列表[11],如果第二个列表中不存在索引11,则使用0


还有一个列表最多可以有30个值,但不超过30个。您可能需要类似的内容(假设第一个和第二个是列表):

列表结果=新列表();
对于(int i=0;i<30;i++)
{
双第一值=0;
双秒值=0;
如果(first.Count>i)
{
firstVal=第一个[i];
}
如果(second.Count>i)
{
secondVal=second[i];
}
结果。添加(第一个值+第二个值);
}

如果我理解正确,您正在尝试将两个列表值添加到另一个列表中。如果列表中的一个已结束,则将该值视为零,并继续直到列表中任一个的最大可用限制。

如果是,

// assume i1, i2 are sources and i3 is result

int max = i1.Count>i2.Count?i1.Count:i2.Count;
for (int i = 0; i < max; i++)
{
    i3[i] = (i1.Count > i ? i1[i] : 0) + (i2.Count > i ? i2[i] : 0);
}

// another varient:
for (int i = 0; i < i1.Count; i++)
{
    i3[i] = i1[i] + (i2.Count > i ? i2[i] : 0);
}
for (int i = i1.Count; i < i2.Count; i++)
{
    i3[i] = i2[i];
}
//假设i1、i2是源,i3是结果
int max=i1.Count>i2.Count?i1.Count:i2.Count;
对于(int i=0;ii?i1[i]:0)+(i2.Count>i?i2[i]:0);
}
//另一个变量:
for(int i=0;ii?i2[i]:0);
}
for(inti=i1.Count;i
只有你是天才才能理解你在这里的意思。请用一种像我这样的普通人都能理解的方式来改写你的问题:)无意冒犯。你不明白我曾经详细写过什么吗?老实说,不,请reword@Imran谢谢,我想现在好多了!我想这就是解决方案等等,我必须试试这个。
List<double> Result = new List<double>();
for (int i = 0; i < 30; i++)
{
    double firstVal = 0;
    double secondVal = 0;
    if (first.Count > i)
    {
        firstVal = first[i];
    }
    if (second.Count > i)
    {
        secondVal = second[i];
    }
    Result.Add(firstVal + secondVal);
}
// assume i1, i2 are sources and i3 is result

int max = i1.Count>i2.Count?i1.Count:i2.Count;
for (int i = 0; i < max; i++)
{
    i3[i] = (i1.Count > i ? i1[i] : 0) + (i2.Count > i ? i2[i] : 0);
}

// another varient:
for (int i = 0; i < i1.Count; i++)
{
    i3[i] = i1[i] + (i2.Count > i ? i2[i] : 0);
}
for (int i = i1.Count; i < i2.Count; i++)
{
    i3[i] = i2[i];
}