Здравствуйте, Аноним, Вы писали:
А>Вполне разумно — Вы добавляете два элемента, каждый из которых, в свою очередь, является массивом. Что здесь непонятно?
Да как-то непонял сначала почему добавляем разные массивы, а получаем одинаковые..
Уже все понял, теперь думаю как это по русски написать.
Угадай, что выведется? 0 или 5? Конкретнее, почему 5, а не ноль?
А теперь подумай, почему у тебя так получается. (подсказка: у тебя та же фигня)
Еще раз, читай книги. Они — источник знаний! (с) Кто-то там...
Потому что Вы добавляете в ArrayList элемент типа array а не элементы массива. Для реализации необходимой Вам функциональности надо использовать ArrayList.AddRange()
ArrayList. Как туда добавить массив??
От:
Аноним
Дата:
06.03.05 13:50
Оценка:
А, понял, что Вы хотите сделать . Для этого используйте простую функцию:
public void AddArray2ArrayList(ArrayList ar, string[] str)
{
for(int i = 0; i < str.Length ; i++)
{
ar.Add(str[i]);
}
}
И перепишите код так:
ArrayList ar = new ArrayList();
string[] str = new string[3];
str[0] = "Первый";
str[1] = "Второй";
str[2] = "Третий";
AddArray2ArrayList(ar, str);
Дело в том, что, т.к. ArrayList принимает объект типа object, то ему совершенно все равно, что Вы передаете — любой объект становится элементом ArrayList.
Здравствуйте, <Аноним>, Вы писали:
А>ПОЧЕМУ так???
.AddRange(...); ?
... << RSDN@Home 1.1.4 beta 4 rev. 345>>
Re[2]: ArrayList. Как туда добавить массив??
От:
Аноним
Дата:
06.03.05 14:26
Оценка:
Здравствуйте, Twirl, Вы писали:
T>Здравствуйте, Аноним, Вы писали:
А>>ПОЧЕМУ так???
T>Потому что Вы добавляете в ArrayList элемент типа array а не элементы массива. Для реализации необходимой Вам функциональности надо использовать ArrayList.AddRange()
Нет проблема в том, что на выходе получаются 2 одинаковых массива. А не 2 разных как предполагалось...
Re[2]: ArrayList. Как туда добавить массив??
От:
Аноним
Дата:
06.03.05 14:29
Оценка:
Здравствуйте, Twirl, Вы писали:
T>Здравствуйте, Аноним, Вы писали:
А>>А, понял, что Вы хотите сделать . Для этого используйте простую функцию: А>>
public void AddArray2ArrayList(ArrayList ar, string[] str)
А>> {
А>> for(int i = 0; i < str.Length ; i++)
А>> {
А>> ar.Add(str[i]);
А>> }
А>> }
T>Простите но array реализовывает интерфэйс ICollection, зачем использовать самопальную функцию если есть ArrayList.AddRange(ICollection col)?
Мне нужно на выходе получить :
первый элемент:
tempArr[0] = "Первое значение";
tempArr[1] = "Второе значение";
tempArr[2] = "Третье значение";
Второй элемент:
tempArr[0] = "Четвертое значение";
tempArr[1] = "Пятое значение";
tempArr[2] = "Шестое значение";
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Twirl, Вы писали:
T>>Здравствуйте, Аноним, Вы писали:
А>>>ПОЧЕМУ так???
T>>Потому что Вы добавляете в ArrayList элемент типа array а не элементы массива. Для реализации необходимой Вам функциональности надо использовать ArrayList.AddRange()
А>Нет проблема в том, что на выходе получаются 2 одинаковых массива. А не 2 разных как предполагалось...
String являеться reference типом. Поэтому чтобы создать два разных массива надо выделять 2й раз память.
Re[4]: ArrayList. Как туда добавить массив??
От:
Аноним
Дата:
06.03.05 14:35
Оценка:
T>String являеться reference типом. Поэтому чтобы создать два разных массива надо выделять 2й раз память.
Вот к чему я пришел в конечном итоге.
using System;
using System.Collections;
class Class1
{
static void Main(string[] args)
{
ArrayList al = new ArrayList();
string[] tempArr = new string[3];
string[] tempArr2 = new string[3];
tempArr[0] = "Первое значение";
tempArr[1] = "Второе значение";
tempArr[2] = "Третье значение";
Здравствуйте, Аноним, Вы писали:
А>Вот такая программа
Это ж просто.
using System;
using System.Collections;
class Class1
{
static void Main(string[] args)
{
ArrayList al = new ArrayList();
string[] tempArr = new string[3];
tempArr[0] = "Первое значение";
tempArr[1] = "Второе значение";
tempArr[2] = "Третье значение";
al.Add(tempArr);
tempArr = new string[3];
tempArr[0] = "Четвертое значение";
tempArr[1] = "Пятое значение";
tempArr[2] = "Шестое значение";
al.Add(tempArr);
}
}
И всё будет как надо.
А>ПОЧЕМУ так???
Потому что в твоём вариант у тебя в ArrayList al лежит два раза один и тот же массив.
Re[5]: ArrayList. Как туда добавить массив??
От:
Аноним
Дата:
06.03.05 17:23
Оценка:
Здравствуйте, Аноним, Вы писали:
T>>String являеться reference типом. Поэтому чтобы создать два разных массива надо выделять 2й раз память.
А>Вот к чему я пришел в конечном итоге. [...]