Как динамически хранить значения в ArrayList - PullRequest
2 голосов
/ 17 октября 2011

Это очень простой или довольно простой вопрос. В моем коде я использую значение foreach для помещения значений в строковую переменную. Для каждой итерации я хочу сохранить (добавить одну за другой) это значение переменной в массиве. Затем извлечь значения массива по его индексу.

Код, который я пытаюсь:

foreach(string abc in namestring)
{
   string values = abc;
   ArrayList list = new ArrayList();
   list.Add(values);
}

Например:

Если 'namestring' содержит значения как tom, dik, harry. Тогда «список» должен содержат эти значения в виде списка (0) = том, список (1) = дик, список (2) = гарри.

Проблема с сохранением значений в массиве

Ответы [ 6 ]

6 голосов
/ 17 октября 2011

Вы должны объявить свой ArrayList вне цикла:

ArrayList list = new ArrayList();
foreach(string abc in namestring)
{
   list.Add(abc);
}

Также, если вы используете .NET 2.0 и выше, вы должны использовать строго типизированный List<string> вместо:

List<string> list = new List<string>();
2 голосов
/ 17 октября 2011

Возможно, вы захотите создать свой список до цикла foreach. Atm вы создаете строку foreach в новом списке коллекции и затем забываете о ее ссылке.

2 голосов
/ 17 октября 2011

Объявить ArrayList list = new ArrayList(); над foreach

1 голос
/ 17 октября 2011

Код можно исправить, переместив строку «new ArrayList ()» за пределы foreach.

В любом случае ...

Если 'namestring' содержит значения в виде тома, дика, гарри.Тогда «список» должен содержать эти значения, такие как список (0) = том, список (1) = дик, список (2) = гарри

строка имен уже содержит их, так как строка имен [0] = томи т. д., чтобы вы могли использовать его как есть.

1 голос
/ 17 октября 2011
var list = new ArrayList();
foreach(string abc in namestring)
{           
    list.Add(abc);
}
1 голос
/ 17 октября 2011

Похоже, что ваша строка имен уже является коллекцией (реализующей ICollection) ... Если это так, вы можете сделать это без цикла.

        ArrayList list = new ArrayList();
        list.AddRange(namestring);
        return list;

или

        List<string> list = new List<string>();
        list.AddRange(namestring);
        return list;

или, просто используйте конструктор

        ArrayList list = new ArrayList(namestring); 

или

        List<string> list = new List<string>(namestring);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...