剛好今天看到 「StringSplitOptions 列舉型別」介紹了其中的「RemoveEmptyEntries」成員,可以限定傳回值不會加入包含了空字串的陣列元素,有這麼好康的事情就來試試效果如何。於是寫了一個簡單的測試程式,沒想到添加了這作法還真是簡潔啊, 而且他從 .net 2.0 就開始支援了。
class Program { static void Main(string[] args) { string strTest1 = "b,a,c,,"; char[] charSeprator = new char[] { ',' }; string strTest2 = "BB[x]CC[x]AA[x]"; string [] strSeprator=new string[]{"[x]"}; //以字元來切割 foreach (string str in strTest1.Split(charSeprator, StringSplitOptions.RemoveEmptyEntries)) Console.WriteLine(str); //以字串來切割 foreach (string str in strTest2.Split(strSeprator, StringSplitOptions.RemoveEmptyEntries)) Console.WriteLine(str); Console.ReadLine(); } }
如果開發環境是.net 3.5以上的版本,還可以更進一步去將 split 的結果進行排序後再取出。例如:
strTest2.Split(strSeprator, StringSplitOptions.RemoveEmptyEntries).OrderBy(g=>g)
就可將陣列進行排序。
參考:
01:StringSplitOptions 列舉型別
02:Extension Methods (C# Programming Guide)
沒有留言:
張貼留言