如何在运行时添加两个列表<>?索引超出范围错误 我的代码已附加 (ASP.net C#)
本文关键字:代码 我的 错误 范围 net ASP 添加 运行时 两个 列表 索引 | 更新日期: 2023-09-27 18:30:54
我试图通过将一个列表的第一个索引值添加到另一个列表的第一个索引值来循环添加两个列表,但两个列表都在运行时填充计算问题是如何跟踪该列表<>在该索引处拥有或不在该索引处拥有值,如下所示,
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];
}
我们不确定两个列表的值可能高达 10,15 .. 索引,但我需要如果列表 1 有 15 个值,列表 2 有 10 个值,然后以这种方式添加两个列表,
A list[0]+B list[0]=
A list[1]+B list[1]=
A list[2]+B list[2]=
如果添加
A list[11]+B list[11]=
然后它从第二个列表中添加 0,因为它只有 10 个值,然后如何验证 B 列表[11] 并在第二个列表中不存在索引 11 时使用 0
再多一个事物列表最多可以有 30 个值,不超过 30
您可能需要这样的东西(假设第一个和第二个是列表):
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];
}