1. 程式人生 > >C#中如何排除/過濾/清空/刪除掉字串陣列中的空字串

C#中如何排除/過濾/清空/刪除掉字串陣列中的空字串

C#中要如何才能刪除一個字串陣列中的空字串呢?隨著微軟對C#不斷髮展和更新,C#中對於陣列操作的方式也變得越來越多樣化。以往要實現過濾陣列中的空字串,都是需要實行迴圈的方式來排除和過濾。C#3.0新增的lambda表示式就可以很方便實現這個功能,下面介紹多種方式來實現清除陣列中的空字串,以及在.net中將字串陣列中字串為空的元素去除。

方式一:使用lambda表示式篩選過濾掉陣列中空字串

        /// <summary>
        /// 使用lambda表示式排除/過濾/清空/刪除掉字串陣列中的空字串
        /// </summary>
        /// <param name="args">
</param>
static void Main(string[] args) { string[] strArray = { "","111","","222","","333"}; Console.WriteLine("輸出帶有空字串的陣列:"); foreach (string str in strArray) { Console.WriteLine(str); } Console.WriteLine("-------------------------------------------"
); //使用lambda表示式過濾掉空字串 strArray = strArray.Where(s=>!string.IsNullOrEmpty(s)).ToArray(); Console.WriteLine("輸出過濾掉空字串的陣列:"); foreach (string str in strArray) { Console.WriteLine(str); } Console.Read(); }

方式二:使用泛型集合List<string>的ForEach迴圈,過濾獲取正確的字串,重新新增到新字串陣列中

            string[] strArray = { "", "111", "", "222", "", "333" };
            Console.WriteLine("輸出帶有空字串的陣列:");
            foreach (string str in strArray)
            {
                Console.WriteLine(str);
            }
            Console.WriteLine("-------------------------------------------");

            /*
             *使用List泛型集合的ForEach方法迴圈獲取非空空字串
             *這裡使用了匿名方法
             */                        
            List<string> list = new List<string>();
            strArray.ToList().ForEach(
            (s) =>
            {
                if (!string.IsNullOrEmpty(s))
                {
                    list.Add(s);
                }
            }
            );
            strArray = list.ToArray();

            Console.WriteLine("輸出過濾掉空字串的陣列:");
            foreach (string str in strArray)
            {
                Console.WriteLine(str);
            }
            Console.Read();

方式三:使用傳統迴圈方式來排除和刪除字串陣列中的空字串

            string[] strArray = { "", "111", "", "222", "", "333" };
            Console.WriteLine("輸出帶有空字串的陣列:");
            foreach (string str in strArray)
            {
                Console.WriteLine(str);
            }
            Console.WriteLine("-------------------------------------------");

            //使用迴圈排除和過濾掉空字串             
            List<string> list = new List<string>();
            foreach (string s in strArray)
            {
                if (!string.IsNullOrEmpty(s))
                {
                    list.Add(s);
                }
            }
                       
            strArray = list.ToArray();

            Console.WriteLine("輸出過濾掉空字串的陣列:");
            foreach (string str in strArray)
            {
                Console.WriteLine(str);
            }
            Console.Read();