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();

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

  • 相关阅读:
    HOJ 2139 Spiderman's workout(动态规划)
    FZU 2107 Hua Rong Dao(dfs)
    Java 第十一届 蓝桥杯 省模拟赛 计算机存储中有多少字节
    Java 第十一届 蓝桥杯 省模拟赛 计算机存储中有多少字节
    Java 第十一届 蓝桥杯 省模拟赛 计算机存储中有多少字节
    Java 第十一届 蓝桥杯 省模拟赛 合法括号序列
    Java 第十一届 蓝桥杯 省模拟赛 合法括号序列
    Java 第十一届 蓝桥杯 省模拟赛 合法括号序列
    Java 第十一届 蓝桥杯 省模拟赛 无向连通图最少包含多少条边
    Java 第十一届 蓝桥杯 省模拟赛 无向连通图最少包含多少条边
  • 原文地址:https://www.cnblogs.com/snow22546/p/6502918.html
Copyright © 2011-2022 走看看