• C# 集合


    ArrayList
    ArrayList myarry = new ArrayList();
    myarry.Add(1);//添加元素
    myarry.Add(2);//索引也是从零开始
    myarry.Add(3);
    myarry.Add(4);
    myarry.Add(5);

    myarry.Insert(3,"7");
    插入在索引号为3的位置一个为7的值
    后面的索引依次向后+1

    myarry.Remove(4);
    移除数据为4的元素
    括号里面是想要移除的数据

    myarry.RemoveAt(4);
    移除索引号为4的数据

    int aa = myarry.Count;
    统计集合内元素的个数
    Console.WriteLine("总共有"+aa+"个元素");

    myarry.Clear();//将集合清空

    bool b = myarry.Contains(3);
    判断是否有括号内的数据,返回的是bool值(True或者False)

    int bb = myarry.IndexOf(2);
    int cc = myarry.LastIndexOf(2);
    Console.WriteLine(bb);

    myarry.Sort();
    自动进行排序,升序

    若需要降序排列,在自动排列之后,对整个集合进行反转指令
    myarry.Reverse();

    ArrayList ar = new ArrayList();
    ar = (ArrayList)myarry.Clone();
    集合的克隆

    foreach (object a in myarry)
    {//从头到尾打印出集合中的所有元素
    Console.WriteLine(a);
    }

    Console.ReadLine();

    集合中有元素是以object这个类型存在
    object类是所有类的基类
    小的数据类型不可以接收object类型的数据
    object类型的变量可以接收任何类型的变量
    string aaa = "2";
    object bbb = aaa;
    aaa不可以接收bbb的值

    Console.WriteLine(myarry[3]);
    Console.ReadLine();

    Stack 集合  干草堆

    Stack aa = new Stack();
    aa.Push(1);//向stack集合中添加数据
    aa.Push(2);
    aa.Push(3);
    aa.Push(4);
    aa.Push(5);

    注意:Stack是没有索引的
    Console.WriteLine(aa[0]);//是错误的

    Console.WriteLine(aa.Peek());//仅用来查看最后一位,不踢出

    aa.Pop();//弹出,踢出最后一个进入集合的数据

    Console.WriteLine( aa.Pop());

    int aaa = aa.Count;//统计个数

    aa.Clear();//清空集合


    foreach (object a in aa)
    {
    Console.WriteLine(a);
    }

    Console.ReadLine();


    Queue 队列集合
    先进的先出,后进的后出
    没有索引
    Queue qq = new Queue();
    qq.Enqueue(1);//给集合中添加元素
    qq.Enqueue(2);
    qq.Enqueue(3);
    qq.Enqueue(4);
    qq.Enqueue(5);

    qq.Dequeue();//将排在最前面的剔除
    int c =qq.Count;//统计个数

    qq.Peek();//只查看,不踢出

    qq.Clear();//清空集合
    bool bb =qq.Contains(3);//判断是否包含这个元素

    foreach (object b in qq)
    {
    Console.WriteLine(b);
    }

    Console.ReadLine();

    foreach 遍历集合
    foreach (object aa in name)
    {
    Console.Write(aa+" ");
    }

    Console.ReadLine();

    object a;
    int b = 4;
    a = b;
    double c = 3.14;
    a = c;
    bool d = true;
    a = d;
    string e = "Hello";
    a = e;
    DateTime dt = DateTime.Now;
    a = dt;

    哈希表集合
    先进后出,一个一个赋值,但是只能一起取值
    初始化
    Hashtable ht = new Hashtable();
    ht.Add(1,"可口可乐");
    ht.Add(2, "雪碧");
    ht.Add(3, "百事可乐");
    ht.Add(4, "芬达");
    ht.Add(5, "美年达");
    移除(某个key值的位置的元素)
    ht.Remove(3);
    判断是否包含
    Console.WriteLine( ht.Contains(5));
    Console.WriteLine(ht.Count);
    foreach (int aa in ht.Keys)
    {
    Console.WriteLine(aa);
    }
    foreach (string ss in ht.Values)
    {
    Console.WriteLine(ss);
    }
    使用枚举类型来读取(表格样式)
    IDictionaryEnumerator ide = ht.GetEnumerator();
    while(ide.MoveNext())
    {
    Console.WriteLine(ide.Key+" "+ide.Value);
    }
    Console.ReadLine();

    课后题
    输入班级人数,输入每个人的姓名、语数英成绩进入集合
    求语文的总分,数学的平均分,
    英语的最高分的人的姓名及所有科目的分数(冒泡排序)
    0 姓名 4 8 12
    1 语文成绩5 9 13
    2 数学成绩6 10 14
    3 英语成绩7 11 15
    Console.Write("请输入班级人数:");
    int n = int.Parse(Console.ReadLine());
    double yu = 0;
    double shu = 0;
    ArrayList al = new ArrayList();
    for (int i = 0; i < n; i++)
    {
    Console.Write("请输入第{0}个人的姓名:",i+1);
    al.Add(Console.ReadLine());
    Console.Write("请输入第{0}个人的语文成绩:",i+1);
    al.Add(double.Parse(Console.ReadLine()));
    yu += double.Parse(al[al.Count - 1].ToString());
    Console.Write("请输入第{0}个人的数学成绩:", i + 1);
    al.Add(double.Parse(Console.ReadLine()));
    shu += double.Parse(al[al.Count - 1].ToString());
    Console.Write("请输入第{0}个人的英语成绩:", i + 1);
    al.Add(double.Parse(Console.ReadLine()));
    }
    Console.WriteLine("所有信息输入完毕,请按回车键继续!");
    Console.ReadLine();
    Console.WriteLine("语文的总分是:"+yu);
    Console.WriteLine("数学的平均分是:"+(shu/n));

    for (int i = 3; i < 4*n-1; i+=4)
    {
    for (int j = i; j < 4 * n - 4; j += 4)
    {
    if (double.Parse(al[i].ToString()) < double.Parse(al[j + 4].ToString()))
    {
    换姓名
    object zhong = al[i - 3];
    al[i - 3] = al[j + 1];
    al[j + 1] = zhong;
    换语文
    zhong = al[i - 2];
    al[i - 2] = al[j + 2];
    al[j + 2] = zhong;
    换数学
    zhong = al[i - 1];
    al[i - 1] = al[j + 3];
    al[j + 3] = zhong;
    换英语
    zhong = al[i];
    al[i] = al[j + 4];
    al[j + 4] = zhong;
    }
    }
    }
    Console.WriteLine("英语最高分的学生是{0},英语分数是{1},语文分数是{2},数学分数{3}",al[0],al[3],al[1],al[2]);
    Console.ReadLine();

  • 相关阅读:
    微博回调接口
    vue获取微博授权URL
    生成微博授权URL接口
    微博账号注册
    微博三方登录原理讲解
    使用celery异步发送短信
    celery配置与基本使用
    友情链接
    Linux无线网络设置--wpa_supplicant的使用
    wpa_supplicant介绍与使用
  • 原文地址:https://www.cnblogs.com/1711643472qq/p/5717546.html
Copyright © 2020-2023  润新知