剛好今天看到 「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)
沒有留言:
張貼留言