У меня проблема с моим скриптом C#. Я хотел создать список строк таблиц следующим образом:Список строковых таблиц C#
public List<string[]> Signals = new List<string[]>();
public string[] Communication = new string[3];
Так как это должно выглядеть, я должен иметь несколько экземпляров связи, в моем списке: Сигналы = (Communication1, Communication2, ...) и каждый Связь имеет 3 строковых поля.
Когда я собрал мои 3 ДАННЫЕ связи (различные для каждого сообщения):
Communication[0]=CommunicationType;
Communication[1]=CommunicationTime;
Communication[2]=CommunicationName;
хранить их в моем списке:
Signals.Add(Communication); // I have also tried .Insert with different Indexes
Когда я несколько раз сделали, запасаются 6 разные таблицы связи, я хочу, наконец, увидеть каждый из моих экземпляров связи, поэтому я делаю следующее:
foreach (string[] Signal in Signals)
{
foreach (string CommunicationUnit in Signal)
{
Print(CommunicationUnit);
}
}
И все, что я могу видеть, как выход в 6 раз последний элемент вошел в список следующим образом
ARINC3
121us
Comm6
ARINC3
121us
Comm6
ARINC3
121us
Comm6
ARINC3
121us
Comm6
ARINC3
121us
Comm6
ARINC3
121us
Comm6
Когда я думал, что я хотел бы видеть каждый элемент в моем списке, которые являются на самом деле 6 различных строк таблицы.
Я не понимаю, что не так с моим сценарием. Я думаю, что ошибка где-то с петлями foreach.
Используйте классы вместо 'string []'. –
Мои психические навыки отладки говорят мне, что вы повторно используете один и тот же массив 'Communication' для всех 6, поэтому все они показывают последние данные, поскольку они используют одну и ту же ссылку. Вам будет лучше, чем другие, предлагать и создавать класс для моделирования вашей структуры данных. –
Вы не видите код, который имеет проблему. Покажите полный код, в котором вы заполняете список сигналов с помощью массивов связи. Когда вы это сделаете, станет очевидно, что вы не создаете новый массив для каждого элемента List. Скорее, вы заполняете список ссылками на один и тот же массив снова и снова. – mbeckish