泛型集合

1 List(与ArrayList集合只有一个区别,list泛型集合规定了特定类型,ArrayList任意类型)

1.1 创建泛型集合对象

List< int> list = new List< int>(); < >括号内是什么类型则泛型集合就是什么类型

1.2 向泛型集合中添加元素

list.Add(1);
list.AddRange(new int[] { 1, 2, 3, 4 }); 添加int类型的数组
list.AddRange(list); 添加自己

1.3显示泛型集合

方法1:for循环

        for(int i=0;i<list.Count;i++)//用for循环显示泛型集合
        {
            Console.WriteLine(list[i]);
        }

方法2:foreach循环

        foreach (int item in list)//用foreach循环显示泛型集合,与for循环效果一样
        {
            Console.WriteLine(item);
        }
        Console.ReadKey();

1.4将集合转换为数组

        List<string> listTwo = new List<string>();
        listTwo.ToArray();

2 Dictionary(键值对集合,与ArrayList集合只有一个区别,Dictionary泛型集合规定了特定类型,ArrayList任意类型)

2.1 创建Dictionary键值对集合对象

Dictionary< int, string > dic = new Dictionary< int, string >();

2.2 向Dictionary键值对集合中添加元素

        dic.Add(1, "张三");
        dic.Add(2, "李四");
        dic[3] = "王五";
        dic[4] = "小李"

2.3 显示Dictionary键值对集合

foreach(var item in dic.Keys) 只遍历了键
{
Console.WriteLine("{0}------{1}",item, dic[item]);
}
Console.ReadKey();

遍历键和值
foreach(keyValuePair< int,stirng> item in dic)
{
Console.WriteLine("{0}-----------{1}",item.key,item.value);
}

3 练习题

3.1 练习一

有一个数组,将数组中的偶数拿出来放到一个集合中,再将数组中的奇数拿出来放到一个集合中,最后两个集合合并为一个集合,并让奇数在左侧,偶数在右侧

        static void Main(string[] args)
        {
            int[] a = { 1, 5, 3, 6, 9, 8, 4 };
            List<int> listji = new List<int>();
            List<int> listou = new List<int>();
            for(int i = 0;i<a.Length;i++)
            {
                if(a[i]%2==0)
                {
                    listou.Add(a[i]);
                }
                else
                {
                    listji.Add(a[i]);
                }
            }
            List<int> listSum = new List<int>();
            listSum.AddRange(listji);
            listSum.AddRange(listou);
            for(int i=0;i<listSum.Count;i++)
            {
                Console.Write(listSum[i]);
            }
            Console.ReadKey();
        }

由于集合本身可以另一个集合,因此可以不用再声明另一个集合来存放奇数集合和偶数集合,可以将偶数集合添加到奇数集合,最后输出奇数集合即可

        static void Main(string[] args)
        {
            int[] a = { 1, 5, 3, 6, 9, 8, 4 };
            List<int> listji = new List<int>();
            List<int> listou = new List<int>();
            for(int i = 0;i<a.Length;i++)
            {
                if(a[i]%2==0)
                {
                    listou.Add(a[i]);
                }
                else
                {
                    listji.Add(a[i]);
                }
            }
            listji.AddRange(listou);
            for(int i=0;i<listji.Count;i++)
            {
                Console.Write(listji[i]);
            }
            Console.ReadKey();
        }

3.2 练习二

让用户输入一个字符串,使用foreach循环赋值给一个char数组

        static void Main(string[] args)
        {
            Console.WriteLine("请输入一个字符串");
            string input = Console.ReadLine();
            char[] chs = new char[input.Length];
            int i = 0;
            foreach(var item in input)
            {
                chs[i] = item;
                i++;
            }
            foreach (var item in chs)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
        }

3.3 练习三

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

 static void Main(string[] args)
        {
            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.Add(str[i], 1);
                }
                else
                {
                    dic[str[i]]++;
                }
            }
            foreach(KeyValuePair<char,int> kv in dic )
            {
                Console.WriteLine("字符{0}出现了{1}次", kv.Key, kv.Value);
            }
            Console.ReadKey();
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值