трехмерный и многотипный массив (или, возможно, список?)

#c#

Вопрос:

У меня есть вопрос, который, вероятно, является чем-то простым, но я не знаю, как его решить…

У меня есть класс с тремя разными массивами:

 public Datetime[] Moment { get; set; } public object Value { get; set; } public int[] State { get; set; }  

Как я мог бы создать объект с этими тремя массивами, но похожий на массив массивов? Представьте, что у меня есть два объекта с этими данными

 {  "Moment":[  "2021-11-15T13:12:45.273Z"  ],  "Value":[  2.166  ],  "State":[  1  ] }  

и

 {  "Moment":[  "2021-11-15T13:12:45.273Z"  ],  "Value":[  1.548  ],  "State":[  2  ] }  

То, что я хочу сделать, это что-то вроде этого:

 {  "ms":[  "2021-11-15T13:12:45.273Z",  "2021-11-15T13:12:45.273Z"  ],  "vs":[  2.166,  1.548  ],  "ss":[  1,  2  ] }  

Я хочу сделать это безразлично к количеству объектов или длине массивов. Мне нужно, чтобы это было динамично. Какая-нибудь помощь?

Комментарии:

1. Я не уверен, что действительно понимаю проблему или то, чего вы пытаетесь достичь.

2. Не лучше ли создать массив с несколькими из этих классов?

3. Предполагая, что я понимаю вопрос, вы могли бы просто связать все эти разные типы вместе в кортеж, а затем создать один массив (или список) для их всех.

4. @thegeneral В основном я хочу объединить массивы моих экземпляров, чтобы создать новый объект со всеми данными. Моя основная проблема связана со свойством Value, потому что это объект, и если я не могу связать цикл с foreach.

5. @стивен, можешь привести пример? Я все еще новичок в кодировании, и я немного запутался в этом

Ответ №1:

Я предпочитаю идти со списком занятий.

Класс, о котором вы упомянули, не назван, поэтому я просто называю его Class для этого примера. Имейте в виду переименовать Class в класс, в котором находятся ваши массивы.

Ваш вопрос также помечен c# , поэтому код написан с учетом этого языка:

 Listlt;Classgt; list = new Listlt;Classgt;(); list.Add(new Class() { moment = "2021-11-15T13:12:45.273Z", Value = 2.166, State = 1}; list.Add(new Class() { moment = "2021-11-15T13:12:45.273Z", Value = 1.548, State = 2};  

Вызов класса будет аналогично работать с массивами, такими как list[0] .
The moment , Value и State хранится в нем list[0] .

Напоминаем, что это всего лишь пример для простых классов. Более крупные и сложные классы могут потребовать другой настройки, в зависимости от контекста.