2016-04-09 38 views
1

なぜこれを行うのが簡単でないのか不思議です。区切り文字なしでC#で文字列を文字列に分割

デリミタを指定せずに文字列を文字列に分割したいだけです。 e。 g。 "Hello"と入力した場合、結果を "H"、 "e"、 "l"、 "l"、 "o" iとしたい。 e。文字列の配列

文字列を文字配列(.ToCharArray())に分割する直接的な方法があり、それを文字列配列に変換することはできますが、文字列配列をすぐに渡すことはできません。

それとも私もこれを行うことはできません。

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

答えて

4

あなたが結合文字とサロゲートペアを処理する必要がある場合は、あなたがすべきLINQの

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

私はあなたの 'ToCharArray()'の部分を省略することができます'string'は' IEnumerable 'を実装しています。 –

+0

Ops、はい、あなたは絶対に正しいです – Steve

+0

はい。私たちはそれを行うことができることを知っている。しかし、私はなぜ単純な方法でそれをすることができないのだろうと考えていました。 Splitメソッドに渡すことができます。 – Randeep

2

のビットを使用してあなたの目標を達成することができます文字列を分割するにはStringInfoクラスを使用してください:

var str = ""; 
var chars = new List<string>(); 
var tee = StringInfo.GetTextElementEnumerator(str); 
while (tee.MoveNext()) 
    chars.Add(tee.GetTextElement()); 
関連する問題