Как конвертировать ArrayList в строку C # - PullRequest
1 голос
/ 14 декабря 2011
ArrayList arr = new ArrayList();
string abc =

Что я должен сделать, чтобы преобразовать arraylist в строку, такую ​​как abc = arr; Обновленный квест Другое соображение, из которого я могу завершить свою работу, - конкатенация строки (нужна помощь в этом смысле).предположим, у меня есть
строка s = "abcdefghi .."применяя к нему цикл foreach и получая char, сопоставляя некоторые условия и конкатенируя каждое значение char в некоторой переменной insatnce строкового типат.е. строка subString = +;Что-то вроде этогоstring tem = string.Empty; string temp =string.Empty; temp = string.Concat(tem,temp);

Ответы [ 3 ]

3 голосов
/ 14 декабря 2011

Используя маленький linq и предполагая, что ваш ArrayList содержит string типов:

using System.Linq;

var strings = new ArrayList().Cast<string>().ToArray();

var theString = string.Join(" ", strings);

Дополнительная литература:

http://msdn.microsoft.com/en-us/library/57a79xd0.aspx

Для преобразования других типов в строку:

var strings = from object o in myArrayList
              select o.ToString();

var theString = string.Join(" ", strings.ToArray());

Первый аргумент метода Join - это разделитель, я выбрал пробел. Похоже, что ваши символы должны вносить свой вклад без разделителя, поэтому используйте "" или string.Empty.

Обновление: Если вы хотите объединить небольшое количество строк, достаточно будет оператора +=:

var myString = "a";
myString += "b"; // Will equal "ab";

Однако, если вы планируете объединять неопределенное количество строк в узком цикле, используйте StringBuilder:

using System.Text;

var sb = new StringBuilder();

for (int i = 0; i < 10; i++)
{
    sb.Append("a");
}

var myString = sb.ToString();

Это позволяет избежать затрат на создание множества строк из-за неизменности строк.

2 голосов
/ 14 декабря 2011

Посмотрите на string.Join(), противоположное string.Split()

Вам также понадобится конвертировать arr в string[], я думаю, ToArray() поможет вам в этом.

0 голосов
/ 14 декабря 2011

Лично и для сохранения памяти сделаю конкатенацию:

        System.Collections.ArrayList Collect = new System.Collections.ArrayList();
        string temporary = string.Empty;
        Collect.Add("Entry1");
        Collect.Add("Entry2");
        Collect.Add("Entry3");

        foreach (String var in Collect)
        {
            temporary = temporary + var.ToString();  
        }
        textBox1.Text = temporary;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...