2012-12-16 8 views
7

मैं सी # में एक दिनचर्या बनाने की कोशिश कर रहा हूं जो मल्टी-लाइन टेक्स्ट बॉक्स में जोड़े गए एक सूची को टाइप करता है। एक बार ऐसा करने के बाद, सभी रिक्त रेखाओं को हटाने का विकल्प होता है। क्या कोई मुझे बता सकता है कि मैं ऐसा करने के लिए कैसे जाऊंगा?सी # सूची <string> से खाली लाइनों को कैसे निकालें?

private void button1_Click(object sender, EventArgs e) 
{ 
    char[] delimiterChars = { ',',' ',':','|','\n' }; 
    List<string> sortBox1 = new List<string>(textBox2.Text.Split(delimiterChars)); 

    if (checkBox3.Checked) //REMOVE BLANK LINES FROM LIST 
    { 
     sortBox1.RemoveAll(item => item == "\r\n"); 
    } 

    textBox3.Text = string.Join("\r\n", sortBox1); 
} 

उत्तर

20

आप '\n' पर स्ट्रिंग बंटवारे रहे हैं, sortBox1 स्ट्रिंग वाली शामिल नहीं होंगे: यहाँ क्या मैं अब तक है, लेकिन यह सब पर जब मैं बॉक्स का चयन काम नहीं करता है और तरह क्लिक करें \n। मैं सिर्फ String.IsNullOrWhiteSpace, हालांकि प्रयोग करेंगे:

sortBox1.Sort(); 

एक खाली लाइन, "\r\n" नहीं है कि एक लाइन ब्रेक है:

sortBox1.RemoveAll(string.IsNullOrWhiteSpace); 
7

आप लाइनों को सॉर्ट करना भूल गए। रिक्त लाइनों रिक्त स्ट्रिंग हैं:

sortBox1.RemoveAll(item => item.Length == 0); 

जब स्ट्रिंग बंटवारे तुम भी रिक्त लाइनों को दूर कर सकते हैं:

private void button1_Click(object sender, EventArgs e) { 
    char[] delimiterChars = { ',',' ',':','|','\n' }; 

    StringSplitOptions options; 
    if (checkBox3.Checked) { 
     options = StringSplitOptions.RemoveEmptyEntries; 
    } else { 
     options = StringSplitOptions.None; 
    } 

    List<string> sortBox1 = new List<string>(textBox2.Text.Split(delimiterChars, options)); 
    sortBox1.Sort(); 
    textBox3.Text = string.Join("\r\n", sortBox1); 
} 
संबंधित मुद्दे