Множественный массив в многомерный массив - PullRequest
0 голосов
/ 01 июня 2011

Здравствуйте, мне было интересно, есть ли способы объединить несколько массивов в один массив.

Exmaple

У меня есть arraylist1, который содержит имена. arraylist 2 с номером телефона и arraylist 3 с адресом. Как я могу объединить их в один мульти-массив, чтобы это было как запись?

Ответы [ 3 ]

2 голосов
/ 01 июня 2011

Предположим, у вас есть три ArrayList строки и все элементы с индексом ith образуют запись,

ArrayList Names = new ArrayList();
ArrayList Phone = new ArrayList();
ArrayList Address = new ArrayList();
ArrayList res = new ArrayList();

for(int i=0; i<Names.Count; i++)
{
  res.Add(new string[]{Names[i].ToString(), Phone[i].ToString(), Address[i].ToString()});
}
1 голос
/ 01 июня 2011

Связано ли содержимое этих списков массивов каким-либо образом, например, контакты?

Если это так, рассмотрите возможность создания класса для представления одного контакта. Этот класс контактов может иметь свойства Name, PhoneNumber и Address. Вы даже можете использовать коллекцию для каждого из этих свойств, если к данной записи контакта будет применено более одного набора.

Вы можете хранить свои разные записи контактов в ArrayList или, если вы используете .NET 2+, строго типизированный список.

0 голосов
/ 01 июня 2011

Если вы работаете в .NET 4.0, вам следует использовать List<T>, хотя вы можете сделать это и с ArrayList, если хотите. Но вы могли бы воспользоваться Tuple для простого комбинирования ваших типов (хотя я полностью согласен с предложениями по созданию пользовательского класса для хранения «записи»):

    List<string> phones = new List<string>();
    List<string> addresses = new List<string>();
    List<string> names = new List<string>();

    // fill with data

    List<Tuple<string,string,string>> results = new List<Tuple<string, string, string>>();

    // aggregate with data - if only two you could also use Zip()
    for (int i = 0; i < names.Count; i++)
    {
        results.Add(Tuple.Create(names[i], addresses[i], phones[i]));
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...