Оптимизировать раздутый код, изменить return - C#

Узнай цену своей работы

Формулировка задачи:

Доброго здоровья заглянувшим в тему. Столкнулся с необходимостью переделать return. До определённого момента он меня устраивал, хоть и был громоздок и топорен. В нём я возвращаю (формирую JSON-объект) 96 экземпляров класса ManualState_Pot(), который подкласс класса ManualState(),
return new ManualState()
         { 
          MS = new ManualState_Pot[]   
               {      
        new ManualState_Pot() { POT = 1, value = MAIN.StatArr[0][1], time = UnixTimeNow(), new_value = MAIN.StatArr[0][3]},
        new ManualState_Pot() { POT = 2, value = MAIN.StatArr[1][1], time = UnixTimeNow(), new_value = MAIN.StatArr[1][3]},
        new ManualState_Pot() { POT = 3, value = MAIN.StatArr[2][1], time = UnixTimeNow(), new_value = MAIN.StatArr[2][3]},
         ...
         ...
        new ManualState_Pot() { POT = 95, value = MAIN.StatArr[94][1], time = UnixTimeNow(), new_value = MAIN.StatArr[94][3]},
        new ManualState_Pot() { POT = 96, value = MAIN.StatArr[95][1], time = UnixTimeNow(), new_value = MAIN.StatArr[95][3]}
               }
          };
Теперь появилась необходимость формировать 12 таких массивов (96 элементов по 4 в каждом), и выбрав один - возвращать. Хотел организовать в ретёрне такой цикл:
return new ManualState()
         { 
          MS = new ManualState_Pot[]   
               {      
                 for (int p = 1; p < 97; p++)
                {
new ManualState_Pot() { POT = p, value = MAIN.StatArr[p-1][1], time = UnixTimeNow(), new_value = MAIN.StatArr[p - 1][3]};
                 };
Но компилятор ругается на непонятное: просит поставить запятую, открыть и закрыть фигурные скобки там, где они уже есть, условия цикла вообще недостижимый код... Прошу помощи у знатоков, что не так делаю и как сделать правильно?!

Решение задачи: «Оптимизировать раздутый код, изменить return»

textual
Листинг программы
var manualState = new ManualState();
 
var msList = new List<ManualState_Pot>();
 
for (int p = 1; p < 97; p++)
{
    msList.Add(new ManualState_Pot() 
                    { 
                       POT = p, 
                       value = MAIN.StatArr[p-1][1],
                       time = UnixTimeNow(),
                       new_value = MAIN.StatArr[p - 1][3]
                     }
                     );
};
 
manualState.MS = msList.ToArray();
 
return manualState;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5