List泛型集合

确定泛型集合的类型,则里面元素类型随之确定。
泛型集合比数据好处在于:长度可以改变。
命名空间:system.Collections.Generic
创建泛型集合对象
List<int> list=new List<int>();
list.Add(1);
            list.Add(2);
            list.Add(3);


            list.AddRange(new int[] { 1, 2, 3, 4, 5, 6 });
            list.AddRange(list);
//List泛型集合可以转换为数组
           int[] nums = list.ToArray();


  //List<string> listStr = new List<string>();


            //string[] str = listStr.ToArray();


//数组可以转换为集合
            //char[] chs = new char[] { 'c', 'b', 'a' };
            //List<char> listChar = chs.ToList();
            //for (int i = 0; i < listChar.Count; i++)
            //{
            //    Console.WriteLine(listChar[i]);
            //}


              List<int> listTwo = nums.ToList();




            //for (int i = 0; i < list.Count; i++)
            //{
            //    Console.WriteLine(list[i]);
            //}


ArrayList和HashTable目前用的并不多
原因如下:
装箱:就是将值类型转换为引用类型。
拆箱:将引用类型转换为值类型。
看两种类型是否发生了装箱或者拆箱,要看,这两种类型是否存在继承关系。
装箱和拆箱


//int n = 10;
            //object o = n;//装箱
            //int nn = (int)o;//拆箱




            //ArrayList list = new ArrayList();
            //List<int> list = new List<int>();
            这个循环发生了100万次装箱操作
            //Stopwatch sw = new Stopwatch();
            00:00:02.4370587
            00:00:00.2857600
            //sw.Start();
            //for (int i = 0; i < 10000000; i++)
            //{
            //    list.Add(i);
            //}
            //sw.Stop();
            //Console.WriteLine(sw.Elapsed);
            //Console.ReadKey();




            //这个地方没有发生任意类型的装箱或者拆箱
            //string str = "123";
            //int n = Convert.ToInt32(str);




            int n = 10;
            IComparable i = n;//装箱


            //发生
        }


Dictionary;
//Dictionary<int, string> dic = new Dictionary<int, string>();
            //dic.Add(1, "张三");
            //dic.Add(2, "李四");
            //dic.Add(3, "王五");
            //dic[1] = "新来的";
            //foreach (KeyValuePair<int,string> kv in dic)
            //{
            //    Console.WriteLine("{0}---{1}",kv.Key,kv.Value);
            //}


            //foreach (var item in dic.Keys)
            //{
            //    Console.WriteLine("{0}---{1}",item,dic[item]);
            //}
            //Console.ReadKey();




//统计 Welcome to china中每个字符出现的次数 不考虑大小写


            string str = "Welcome to China";
             Dictionary<char, int> dic = new Dictionary<char, int>();
            for (int i = 0; i < str.Length; i++)
            {
                if (str[i] == ' ')
                {
                    continue;
                }
                if (dic.ContainsKey(str[i]))
                {
                    dic[str[i]]++;
                }
                else {
                    dic[str[i]] = 1;
                }
            }
            foreach (KeyValuePair<char, int> kv in dic)
            {
                Console.WriteLine("{0}chuxianle{1}",kv.Key,kv.Value);
            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值