2015-01-16 3 views
5

У меня есть текст. например string text = "COMPUTER"
И я хочу разбить его на символы, чтобы каждый символ был как строка.
Если есть какой-либо разделитель, я могу использовать text.Split(delimiter).
Но нет никаких разделителей, преобразовать его в массив символов с
text.ToCharArray().toList().
И после этого я получаю List<char>. Но мне нужно List<string>.
So Как я могу преобразовать List<char> в List<string>.Как преобразовать Список <char> в список <string> в C#?

ответ

11

Просто итерацию по коллекции символов, а также конвертировать каждый в строку:

var result = input.ToCharArray().Select(c => c.ToString()).ToList(); 

или короче (и более эффективной, так как мы не создаем дополнительный массив между ними):

var result = input.Select(c => c.ToString()).ToList(); 
1

Попробуйте следующие

string text = "COMPUTER" 
var listOfChars = text.Select(x=>new String(new char[]{x})).ToArray() 
1

Используйте тот факт, что string является internall у уже очень близко к char[]

подход без LINQ:

List<string> list = new List<string(); 
for(int i = 0; i < s.Length; i++) 
    list.Add(s[i].ToString()); 
2

попробовать этот

var result = input.Select(c => c.ToString()).ToList(); 
+0

Почему это downvoted ?? – Ripple

+1

@Ripple: потому что ответ был отредактирован с (но все еще в исходном временном окне без истории). Оригинальный ответ не имел никакого отношения к вопросу – knittl

+0

@knittl Получил его, но теперь downvoter должен отменить его ... – Ripple

1
string bla = "COMPUTER"; //Your String 
    List<char> list = bla.ToCharArray().ToList(); //Your char list 
    List<string> otherList = new List<string>(); //Your string list 
    list.ForEach(c => otherList.Add(c.ToString())); //iterate through char-list convert every char to string and add it to your string list 
0

Используйте это:

Ключ:

charList это ваш символ Список

strList ваш список Строка

Код:

List<string> strList = new List<string>(); 
foreach(char x in charList) 
{ 
    strList.Add(x.ToString()); 
} 
Смежные вопросы