У меня есть цикл for, и я хотел бы сохранить данные каждого цикла for в С#. На данный момент он хранит только данные последней итерации.
Прикрепил мой код. Большое спасибо!
for (int i = 0; i < n; i++)
{
if (i <= k - p - 1)
{
alpha[i] = 1;
NewCPVector[i] = CPVector[i];
}
if (k - p <= i && i <= k-1)
{
alpha[i] = (FinalKnotsVector[k] - Initialknots[i]) / (Initialknots[i + p + 1] - Initialknots[i]);
NewCPVector[i] = alpha[i] * CPVector[i] + (1 - alpha[i]) * CPVector[i - 1];
}
if (i >= k)
{
alpha[i] = 0;
NewCPVector[i] = CPVector[i - 1];
}
}
Как намекали другие, если вы выберете разумные и разумные значения для n, k и p, ваш цикл должен помещать вещи в массивы/коллекции alpha и NewCPVector на каждой итерации...





Я собираюсь предположить, что ваши массивы содержат двойные значения. (Однако это могут быть и другие типы, такие как float или decimal), вам просто нужно указать этот тип в объявлении списка. Вы можете сохранить данные в списке следующим образом:
List<double> data = new List<double>();
for (int i = 0; i < n; i++)
{
if (i <= k - p - 1)
{
alpha[i] = 1;
data.Add(NewCPVector[i] = CPVector[i]);
}
if (k - p <= i && i <= k-1)
{
alpha[i] = (FinalKnotsVector[k] - Initialknots[i]) / (Initialknots[i + p + 1] - Initialknots[i]);
data.Add(alpha[i] * CPVector[i] + (1 - alpha[i]) * CPVector[i - 1]);
}
if (i >= k)
{
alpha[i] = 0;
data.Add(CPVector[i - 1]);
}
}
Спасибо, это то, что мне было нужно!
Можете ли вы также указать, каковы значения k, p и n?