2015-01-16 13 views
5

Mam tekst. na przykład string text = "COMPUTER" I chcę podzielić go na znaki, aby zachować każdy znak jako ciąg.
Jeśli były jakieś ograniczniki, mogę użyć text.Split(delimiter).
Ale nie ma żadnego ogranicznika, przekonwertować go do char tablicy z
text.ToCharArray().toList().
Po tym otrzymam List<char>. Ale potrzebuję List<string>.
Więc jak mogę przekonwertować List<char> na List<string>.Jak przekonwertować listę <char> na listę <string> w języku C#?

Odpowiedz

11

Wystarczy iteracyjne nad zbiór znaków i przekształcić każdy o wyrażenie:

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

lub krótszy (i bardziej efektywne, ponieważ nie jesteśmy tworząc dodatkowy array in between):

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

Spróbuj następujących

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

Wykorzystaj fakt, że string jest internall y już bardzo blisko do char[]

podejścia bez LINQ:

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

spróbować tej

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

Dlaczego ten downvoted ?? – Ripple

+1

@Ripple: ponieważ odpowiedź została edytowana od (ale nadal w początkowym oknie czasowym "historyless"). Oryginalna odpowiedź nie miała nic wspólnego z pytaniem: – knittl

+0

@knittl Got to, ale teraz downvoter powinien go anulować ... – 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

użyj:

Klucz:

charList jest twój Postać Lista

strList jest Twoja lista String

Kod:

List<string> strList = new List<string>(); 
foreach(char x in charList) 
{ 
    strList.Add(x.ToString()); 
} 
Powiązane problemy