集合

System.Collections 命名空间包含接口和类,这些借口和类定义各种对象的集合。

System.Collections.Generic 命名空间包含定义泛型集合的借口和类,反省集合允许用户创建强类型集合,它能提供比非泛型强类型集合更好的类型安全性和性能.

System.Collections.Specialized 命名空间包含专用的和强类型的集合,例如,链接的列表词典,位向量依旧只包含字符串的集合。

常用的集合为arraylist类;特殊集合一般会用到queue队列集合,stack栈集合还有hashtable 哈希表集合。

集合不同于数组,是一组可变数量的元素的组合,这些元素可能共享某些特性,需要以某种操作方式一起进行操作。一般来说,这些元素的类型是相同的。

集合与数字组的区别:数组是连续的,同一类型数据的一块区域,而集合可以是不连续的,多种数据类型的

ArrayList 集合:

ArrayList实现了IList、ICollection、IEnumerable 接口;

ArrayList与Array 的名字很相似,现在来比较一下两者的异同。

相同点:

1. 两者都实现了List、ICollection、IEnumerble 接口;

2. 两者都可以使用整数索引访问集合中的元素,包括读取和赋值,且集合中的索引都是从0开始。

不同点:

1. ArrayList 是集合,而Array是数组;

2.ArrayLlist是具体类,而Array是抽象类;

3.数组必须在实例化时指定元素的数量,该数量一旦确定就不可以更改了,而arraylist扩展了这一点,当实例化一个arraylist实例时可以不知道集合元素数(有默认初始容量),

当然你也可以指定初始容量;

4. 获取数组的元素时使用length属性,而获取arraylist集合的元素数时使用count属性;

5. 数组可以有多维,而arraylist只能是一维。

arraylist 具体提供的功能:

  属性                                                                     功能说明

.Count                                                  获取ArrayList中实际包括的元素数

 方法                                                                    功能说明

.Add()                                                 将对象添加到ArrayLlist的结尾处

.Clear()                                                从ArrayList中移除所有元素

.Clone()                                                创建ArrayList的浅表副本

.Contains()                                           确定某元素是否在ArrayLlist中

.Indexof()                                            已重载.返回ArrayList或它的一部分中某个值的第一匹配项的从零开始的索引

.Insert()                                              将元素插入ArrayLlist的指定索引处.可在任意位置插入

.Lastlndexof()                                       已重载.返回ArrayList或它的一部分中某个值的最后一个匹配项的从零开始的索引

.Remove()                                            从ArrayList中移除特定对象的第一个匹配项

.removeat()                                         移除ArrayLlist的指定索引处的元素

.Sort                                                   已重载.对ArrayLlist或它的一部分中的元素进行排序,升序

.R

.Reverse                                              翻转整个集合

foreach                                               遍历集合

 1).  输入每个人成绩
            求平均分
            求最高分
            求最低分(集合)
           
            Console.WriteLine("输入人数");
            int a = int.Parse(Console.ReadLine());
            ArrayList fen = new ArrayList(a);
            for (int i = 0; i < a; i++)
            {
                Console.WriteLine("输入第" + (i + 1) + "个人成绩");
                fen.Add(double.Parse(Console.ReadLine()));
            }
            double sum = 0;
            for (int i = 0; i < a; i++)
            {
                sum += double.Parse(fen[i].ToString());
            }
            Console.WriteLine(sum / a);
            Console.ReadLine();
            fen.Sort();
            for (int i = 0; i < a; i++)
            {
                Console.WriteLine(fen[i]);
            }
            Console.WriteLine("最小"+fen[0]);
            Console.ReadLine();
            fen.Reverse();
            for (int i = 0; i < a; i++)
            {
                Console.WriteLine(fen[i]);
            }
            Console.WriteLine("最大"+fen[0]);
            Console.ReadLine();

 2.        输入年龄,姓名
            按年龄从大到小排序
            姓名同年龄一起排序
           

     (1)  Console.WriteLine("输入人数");
            int a = int.Parse(Console.ReadLine());
            ArrayList age = new ArrayList();
            ArrayList name = new ArrayList();
            for (int i = 0; i < a; i++)
            {
                Console.WriteLine("输入第" + (i + 1) + "个人姓名");
                name.Add(Console.ReadLine());
            }
            for (int i = 0; i < a; i++)
            {
                Console.WriteLine("输入第" + (i + 1) + "个人年龄");
                age.Add(int.Parse(Console.ReadLine()));
            }

 

            Console.WriteLine();

 

            for (int i = 0; i < a; i++)
            {
                Console.WriteLine(name[i] + age[i].ToString());
            }
            Console.ReadLine();

 

            for (int i = 0; i < a; i++)
            {
                for (int j = i; j < a - 1; j++)
                {
                    if (int.Parse(age[i].ToString()) < int.Parse(age[j + 1].ToString()))
                    {
                        int zhong = (int.Parse(age[i].ToString()));
                        age[i] = age[j + 1];
                        age[j + 1] = zhong;
                        string z = (name[i].ToString());
                        name[i] = name[j + 1];
                        name[j + 1] = z;
                    }
                }
            }

 

            for (int i = 0; i < a; i++)
            {
                Console.WriteLine(name[i] + age[i].ToString());
            }
            Console.WriteLine();
            Console.WriteLine(name[0] + age[0].ToString());
            Console.ReadLine();

 

            
       (2) Console.WriteLine("输入人数");
            int a = int.Parse(Console.ReadLine());
            ArrayList zong = new ArrayList();
            for (int i = 0; i < a; i++)
            {
                Console.WriteLine("输入第" + (i + 1) + "个人姓名");
                zong.Add(Console.ReadLine());
                Console.WriteLine("输入第" + (i + 1) + "个人年龄");
                zong.Add(Console.ReadLine());
            }
            for (int i = 1; i < a * 2; i += 2)
            {
                for (int j = i; j < a * 2 - 2; j += 2)
                {
                    if (int.Parse(zong[i].ToString()) < int.Parse(zong[j + 2].ToString()))
                    {
                        int zhong = (int.Parse(zong[i].ToString()));
                        zong[i] = zong[j + 2];
                        zong[j + 2] = zhong;
                        string z = (zong[i - 1].ToString());
                        zong[i - 1] = zong[j + 1];
                        zong[j + 1] = z;
                    }
                }
            }
            Console.WriteLine(zong[0].ToString() + zong[1].ToString());
            Console.ReadLine();

 

原文地址:https://www.cnblogs.com/zzzy0828/p/5624429.html