Evet, burada bir cevap daha gerekiyor!
Şimdiye kadar tüm çözümler kanonik girdinin oldukça sınırlı alanını ele almak için: elemanlar arasında tek bir boşluk karakteri (en azından problemden bahsetmek için @cherno'ya şapka ucu olsa da). Ancak, en belirsiz senaryolar dışında, tüm bunların bölünmesinin aynı sonuçları vermesi gerektiğini söylüyorum :
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
(buradaki diğer cevaplar boyunca gösterilen lezzetlerin herhangi birinde) RemoveEmptyEntries
seçeneği bunlardan herhangi birine eklemediğiniz sürece iyi çalışmaz :
myStr.Split(new char[0], StringSplitOptions.RemoveEmptyEntries)
myStr.Split(new char[] {' ','\t'}, StringSplitOptions.RemoveEmptyEntries)
Şekilde görüldüğü gibi, seçeneği atlamak, kullandığınızda dört girişin her birinden dört farklı sonuç (A, B, C ve D etiketli) ile sonuçlanır RemoveEmptyEntries
:
Tabii ki, seçenekleri kullanmaktan hoşlanmıyorsanız, regex alternatifini kullanın :-)
Regex.Split(myStr, @"\s+").Where(s => s != string.Empty)