2016-04-09 16 views
1

Bunun için neden kolay bir yol olmadığını merak ediyorum.dize dizisine string dizisi ayırıcı olmadan

Sadece bir dizeyi herhangi bir sınırlayıcı belirtmeden dize dizisine bölmek istiyorum. e. g. "Merhaba" olarak girdim için sonucu "H", "e", "l", "l", "o" olarak istiyorum. e. bir dizi dizi.

Dizgiyi karakter dizisine (.ToCharArray()) ayırmak için verilen ve sırayla dizgi dizisine dönüştürülebilen, ancak hemen dize dizisi verilebilecek hiçbir şey için doğrudan bir yöntem vardır.

Ya ben bile bunu yapamaz: Eğer karakterleri ve vekil çiftleri birleştirerek işlemek gerekiyorsa

string[] myStringArray = myString.Split(''); // Compile error 

cevap

4

Sen Linq

string[] myStringArray = myString.Select(x => x.ToString()) 
           .ToArray(); 
+1

, günah ce 'dizgesi' IEnumerable 'uygular. –

+0

Ops, evet, kesinlikle doğru – Steve

+0

Yea. Bunu yapabileceğimizi biliyorum. Ama sadece neden bunu basit bir şekilde yapamadığımızı düşünüyordum. Ya da Split metoduna geçebiliriz. – Randeep

2

biraz kullanarak hedefe ulaşabilirsiniz, şunları yapmalısınız senin dize bölme için StringInfo sınıfını kullanın: sana `ToCharArray()` o kısmını atlayabilirsiniz tahmin

var str = ""; 
var chars = new List<string>(); 
var tee = StringInfo.GetTextElementEnumerator(str); 
while (tee.MoveNext()) 
    chars.Add(tee.GetTextElement()); 
İlgili konular