首页 > 代码库 > 集合的练习

集合的练习

//案例:把分拣奇偶数的程序用泛型实现。int[] nums={1,2,3,4,5,6,7,8,9};奇数在左边 偶数在右边
            List<int> list = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            //List<int> Odd = new List<int>();//奇数
            //List<int> Even = new List<int>();//偶数
            //for (int i = 0; i < list.Count; i++)
            //{
            //    if (list[i] % 2 != 0)
            //    {
            //        Even.Add(list[i]);
            //    }
            //    else
            //    {
            //        Odd.Add(list[i]);
            //    }
            //}
            //list.AddRange(Odd);
            //list.AddRange(Even);
            //StringBuilder sb = new StringBuilder(); //可变字符串
            //for (int i = 0; i < list.Count; i++)
            //{
            //    sb.Append(list[i]);
            //}
            //Console.WriteLine(sb);
            //Console.ReadKey();
            //练习1:将int数组中的奇数放到一个新的int数组中返回。
            //将数组中的奇数取出来放到一个集合中,最终将集合转换成数组 。


            //int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            //List<int> listOdd = new List<int>();
            //for (int i = 0; i < nums.Length; i++)
            //{
            //    if (nums[i] % 2 != 0)
            //    {
            //        listOdd.Add(nums[i]);
            //    }
            //}
            ////再将集合转换成相应的数组
            //int[] newNums = listOdd.ToArray();
            //for (int i = 0; i < newNums.Length; i++)
            //{
            //    Console.WriteLine(newNums[i]);
            //}
            //Console.ReadKey();


            //练习2:从一个整数的List<int>中取出最大数(找最大值)。
            //List<int> list = new List<int>() { 1, 2, 3, 4, 5, 6, 3, 8, 7, 9 };
            //int temp=list[0];
            //for (int i = 0; i < list.Count; i++)
            //{
            //    if(list[i]>temp)
            //    {
            //    temp=list[i];
            //    }
            //}
            //Console.WriteLine("该数组中最大值为{0}",temp);
            //Console.ReadKey();
            //练习:把123转换为:壹贰叁。Dictionary<char,char>
            //“1一 2二 3三 4四 5五 6六 7七 8八 9九”


            ////Console.WriteLine("请输入一个数");
            ////string number = Console.ReadLine();
            ////string str = "1壹 2贰 3叁 4肆 5伍 6陆 7柒 8捌 9玖 0零";
            ////Dictionary<int, char> dic = new Dictionary<int, char>();
            ////string[] parts = str.Split(new char[] { ‘ ‘,StringSplitOptions.RemoveEmptyEntries.ToString() });
            ////for (int i = 0; i < parts.Length; i++)
            ////{
            ////    dic.Add(parts[i][0], parts[i][1]);
            ////}
            ////StringBuilder sb = new StringBuilder();
            ////for (int i = 0; i < number.Length; i++)
            ////{
            ////    sb.Append(dic[number[i]]);
            ////}
            ////Console.WriteLine(sb.ToString());
            ////Console.ReadKey();
            //练习:计算字符串中每种字符出现的次数(面试题)。 “Welcome to Chinaworld”,不区分大小写,打印“W2”“e 2”“o 3”…… 
            //提示:Dictionary<char,int>,char的很多静态方法。char.IsLetter()
            //string str = "Welcome to China! This is a beautiful county, I think you will like it.Here is The Great Wall";
            //str = str.ToLower();
            //Dictionary<char, int> dict = new Dictionary<char, int>();
            //for (int i = 0; i < str.Length; i++)
            //{
            //    if (char.IsLetter(str[i]))
            //    {
            //        if (dict.ContainsKey(str[i]))
            //        {
            //            dict[str[i]]++;
            //        }
            //        else
            //        {
            //            dict.Add(str[i], 1);
            //        }
            //    }


            //}
            //foreach (KeyValuePair<char, int> kv in dict)
            //{
            //    Console.WriteLine("字符{0},出现了{1}", kv.Key, kv.Value);
            //}
            //Console.ReadKey();
            //案例:两个(List)集合{ “a”,“b”,“c”,“d”,“e”}和{ “d”, “e”, “f”, “g”, “h” },把这两个集合去除重复项合并成一个。


            List<char> list1 = new List<char>() {‘a‘,‘b‘,‘c‘,‘d‘,‘e‘};
            List<char> list2 = new List<char>() {‘d‘,‘e‘,‘f‘,‘g‘,‘h‘ };
            for (int i = 0; i < list2.Count; i++)
            {
                //如果集合1中不包括集合2
                if(!list1.Contains(list2[i]))
                {
                //那么将集合2种的项添加到集合1中
                    list1.Add(list2[i]);
                }
            }
            //将集合1显示出来
            for (int i = 0; i < list1.Count; i++)
            {
                Console.WriteLine(list1[i]);
            }
            Console.ReadKey();

集合的练习