はい、もう1つ回答が必要です。
すべてのソリューションは、これまでのかなり限定されたドメイン対処する標準的な入力をウィットに、:単一の空白文字の間(少なくとも問題に言及するため@chernoへの帽子の先端が)の要素を。しかし、私はほとんどの不明瞭なシナリオを除いてすべてを提出します、これらすべてを分割すると同じ結果が得られるはずです:
string myStrA = "The quick brown fox jumps over the lazy dog";
string myStrB = "The quick brown fox jumps over the lazy dog";
string myStrC = "The quick brown fox jumps over the lazy dog";
string myStrD = " The quick brown fox jumps over the lazy dog";
String.Split
(他の回答でここに示されているフレーバーのRemoveEmptyEntries
いずれかで)、これらのいずれかでオプションをアタッチしない限り、単にうまく機能しません:
myStr.Split(new char[0], StringSplitOptions.RemoveEmptyEntries)
myStr.Split(new char[] {' ','\t'}, StringSplitOptions.RemoveEmptyEntries)
図からわかるように、オプションを省略すると、4つの異なる結果(A、B、C、およびDのラベルが付けられます)と、使用時の4つの入力すべてからの単一の結果が得られますRemoveEmptyEntries
。
もちろん、オプションを使用したくない場合は、代わりに正規表現を使用してください:-)
Regex.Split(myStr, @"\s+").Where(s => s != string.Empty)