У меня есть 2Arrays
двойников, на которых мне нужно выполнять арифметические операции (+, -, /, *)
Array1 = d1 , d2, d3, d4, d5, d6, , , d9, d10
Array2 = d3, d4, , d6, , d8, d9, d10
Operation = "+";
Правка Выше Пустые элементы показаны только дляпредставление данных, все они хранятся без пробелов
Array1 = d1, d2, d3, d4, d5, d6, d9, d10
Array2 = d3, d4, d6, d8, d9, d10
Req Output
ArrayOpt =
[0] = d3+d3
[1] = d4+d4;
[2] = d5+d4;
[3] = d6+d6;
[4] = d6+d8;
[5] = d9+d9;
[6] = d10+d10;
Что я пробовал
int i = 0, PreviousIndex = -1;
int SecondaryIndex = 0;
// check if there is a gap
if (SecondaryIndex < DATES2.Length && Convert.ToInt32(d) != Convert.ToInt32(DATES2[SecondaryIndex]))
{
// first value of index contain the index of second symbol date that matches with first symbol's first date.
// eg: first data => d1 d2 d3 d4 d5 d6
// 2nd data => d3 d4 d6
// in the above case, the index would be the index of d3.
index = DATES2.Select((v, j) => new { Index = j, Value = (int)v }).Where(p => p.Value == (int)d).Select(p => p.Index).ToList();
if (index.Count > 0)
SecondaryIndex = index[0];
else
SecondaryIndex = -1;
}
if(secondaryIndex != -1)
{
CalculateData(operation, DATES1[i],DATES2[secondaryIndex]);
PreviousIndex = secondaryIndex;
}
else
{
CalculateData(operation, DATES1[i],DATES2[PreviousIndex]);
}
i++;
secondaryIndex++;
но результат такой:
d1, d2, d3, d4, d5, d6, d9, d10
+
d3, d4, d6, d8, d9, d10
Кто-нибудь может подсказать, в чем проблема или какое-нибудь другое лучшее решение?