zoukankan      html  css  js  c++  java
  • 【2017-03-02】C#集合,结构体,枚举

    集合

    集合与数组的区别

    数组:同一类型,固定长度

    集合:不同类型,不固定长度

    使用集合前需要:     引用命名空间:using System.Collections;

    1、普通集合 

    定义:

    ArrayList 集合名称 = new ArrayList();(普通集合,弱类型集合)

    赋值:

    集合名称.Add(object类型的值);       object类型:所有类型的基础类型(基类) string,int,bool,datetime任意类型都可以

    取值:

    集合名称[索引]    与数组取值一样     集合索引按先后输入顺序排列

    获取个数:

    集合名称.Count         只能统计个数,不能统计长度

    插队:

    集合名称.Insert(索引,变量)

    移除:

    集合名称.Remove(变量)     移除该集合中第一个变量;

    集合名称.RemoveAt(索引)      移除该集合中该索引位置的变量;

    反转:
    集合名称.Reverse();         将该集合所有变量全部反转
    集合名称.Reverse(索引,int值)     指定反转:将集合中从该索引开始反转,反转个数为该int值

    清空:
    集合名称.Clear();

    2、泛型集合(最常用的集合)

    泛型集合针对同一类型(取值操作方便) 强类型集合

    普通结合针对所有类型(取值操作不方便)弱类型集合

    定义:List<T> 集合名称 =new List<T>();    T:表示泛型,指定基类,可以为string,int,bool,datetime任意类型;

    操作与普通类型代码完全一致。

    3、哈希表集合        自定义索引集合(弱类型)

    定义:Hashtable 集合名称 =new Hashtable()

    赋值:集合名称.Add(object key,object value)    key是键,value是值,称为一个键值对;

    取值:集合名称[键]=value;    字符串索引需加""

    不能插队也不能反转

    foreach循环打印时,需声明打印的是键还是值

    foreach(string s in hs.Values)

    {

    Console.WriteLine(s);

    }

    4、字典集合     (强类型)

    Dictionary<键, 值> 集合名称 = new Dictionary<键, 值>();

    前后键和值的类型必须一致;

    5、队列集合   

    Queue  集合名称=new Queue();

    赋值:集合名称.Enqueue(变量);

    取值:集合名称.Enqueue();     将集合中第一个变量往外输出

    队列集合遵循先进新出的原则,先赋值的,最先出去,一次只能一个一个的出

    6、栈桥集合

    Stack 集合名称=new Stack();

    赋值:集合名称.Push(变量);

    取值: 集合名称.Pop();     将集合中最后一个变量往外输出

    与队列集合相反,遵循先进后出的原则

    foreach循环,又称为遍历

    foreach(数据类型 i in 集合名称)        //打印该集合中所有此数据类型的变量

    {

    Console.WriteLine(i);                i可以任意值代替

    }

    结构体

    结构体属于用户自定义类型;

    定义位置:定义在Main函数的外面,类的里面

    定义格式:
    struct 自定义名字
    {
    public 数据类型 名称;
    public 数据类型 名称;
    ...
    ...
    }

    声明实例化:
    结构体类型 集合名称 = new 结构体类型();

    Student s = new Student();

    集合类型<结构体名称>集合名称=new 集合类型<结构体名称>();

    如:List<Student> s =new List<Student>();

    单独定义个体:  Student a =new Student();

    需根据集合类型进行相应的赋值和取值

  • 相关阅读:
    8.ffmpeg-基础常用知识
    7.SwrContext音频重采样使用
    6.AVCodecContext和AVCodec
    5.AVStream和AVCodecParameters
    Discuz论坛禁止匿名发贴,却出现匿名发帖或回复?找不到发帖用户,DZ如何禁止匿名发帖修改教程
    在独立服务器上通过Ubuntu 18.04+apache2+php5.6+mysql5.7+discuz!x3.4搭建的论坛实现伪静态的正确方法
    [源码] 2200套微信小程序源码
    discuz论坛更换目录后出现头像无法显示/ucenter无法进入
    discuz 您的服务器不支持 CURL,这将会导致应用无法安装。请联系您的服务商或者网站技术人员
    Discuz在服务器配置安装时出现xml_parser_create()不支持
  • 原文地址:https://www.cnblogs.com/snow22546/p/6502918.html
Copyright © 2011-2022 走看看