-1

あるリストの最初のインデックス値を別のリストの最初のインデックス値に追加することで、2 つのリストをループに追加しようとしていますが、計算の問題の後、実行時に両方のリストに値が入力されます。インデックスまたは以下に示すように、

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 .. index の値があるかどうかはわかりませんが、リスト 1 に 15 の値があり、リスト 2 に 10 の値がある場合、この方法で 2 つのリストを追加する必要があります。

A list[0]+B list[0]= 
A list[1]+B list[1]= 
A list[2]+B list[2]= 

追加する場合

A list[11]+B list[11]= 

次に、値が 10 個しかないため、2 番目のリストから 0 を追加します。その後、b リスト [11] を検証し、インデックス 11 が 2 番目のリストに存在しない場合は 0 を使用します。

もう 1 つのリストには最大 30 の値を含めることができ、最大 30 を超えてはなりません

4

2 に答える 2

0

私の理解が正しければ、2 つのリスト値を別のリストに追加しようとしています。リストの 1 つが終了した場合、値をゼロと見なし、いずれかのリストの最大利用可能制限まで続行します。

もしそうなら、

// 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];
}
于 2013-09-10T07:57:22.487 に答える
0

You may need something like this (assuming that first and second are List):

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);
}
于 2013-09-10T07:45:09.450 に答える