集合

集合与数组的区别

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

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

使用集合前需要:     引用命名空间: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();

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

【2017-03-02】C#集合,结构体,枚举的更多相关文章

  1. OC基础--结构体 枚举做类成员属性

    结构体  枚举作类的成员属性: 定义一个学生类 性别 -- 枚举 生日 入学日期  毕业日期  --  结构体 代码示例: 声明文件 Student.h: #import <Foundation ...

  2. C# 结构体 枚举类型

    注意:枚举类型和结构体都属于值类型. 结构体:就是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样. 一.定义的方法: struct student { public int nianl ...

  3. C# 类&结构体&枚举

    类: class Lei  //要和static void Main(string[] args)平级: { public int lei_int;  //public是关键字,代表访问权限,这里是公 ...

  4. C 碎片八 结构体&枚举&联合

    一.结构体 1, 结构体定义 结构体类型的定义:任意数据类型变量的集合.用于描述一个具体的事物的信息,在C语言中描述一件事物一般都是用结构体 声明结构体类型的格式: struct  结构体名 {成员列 ...

  5. C#基础 结构体 枚举类型

    结构体:就是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样. 一.定义的例子: struct student { public int nianling; public int fen ...

  6. C语言的结构体,枚举类型在程序中的作用

    http://www.xue63.com/xueask-1221-12212854.html 结构和枚举类型从程序实现的角度来说,是用更接近自然语言的方式来表达数据.比如说实现2维空间的点,你可以使用 ...

  7. C++_知识点_结构体/枚举/联合

    //C++中结构体的不同之处 #include <iostream> #include <string> using namespace std; int main(void) ...

  8. C#学习笔记_12_枚举&结构体

    12_枚举&结构体 枚举 是一种数据类型 适用于某些取值范围有限的数据 语法: [访问权限修饰符] enum 枚举名 { 枚举值 } 枚举名遵循大驼峰命名法 枚举一般情况下是和switch c ...

  9. Swift超详细的基础语法-结构体,结构体构造器,定义成员方法, 值类型, 扩充函数

    知识点 基本概念 结构体的基本使用 结构体构造器(构造函数/构造方法) 结构体扩充函数(方法), 又称成员方法 结构体是值类型 1. 基本概念 1.1 概念介绍 结构体(struct)是由一系列具有相 ...

  10. swift中类与结构体

    写了12个Person来复习,不过完成同样的代码需要敲键盘的次数相比OC确实少了很多,这很多应该归功于Swift中不写分号,以及少了OC中的中括号. 一.类与结构体 两者在Swift中差不了多少了 类 ...

随机推荐

  1. 关于Oxygen版 Eclipse JSP或html 中<option>标签嵌入jstl 如<c:if>出现报错

    Oxygen版 Eclipse JSP或html 中<option>标签嵌入jstl 如<c:if>出现报错 好好的学框架的整合,结果在<option>中加入< ...

  2. caz,数字证书,公钥

    如何有效检查证书有效性? https://www.jianshu.com/p/f4a37da10c53 自签名的https证书是不安全的 https://www.cnblogs.com/liyy201 ...

  3. 帝国cms搜索关键字调用标签(showsearch)怎么用

    前面ytkah介绍了如何让帝国CMS7.2搜索模板支持动态标签调用,现在我们来说说怎么调用帝国cms搜索关键字调用标签(showsearch).在帝国cms后台那边的使用方法:[showsearch] ...

  4. python创建有序字典及字典按照值的大小进行排序

    有序字典 在Python中,字典类型里面的元素默认是无序的,但是我们也可以通过collections模块创建有序字典 # -*- coding:utf-8 -*- # python有序字典需导入模块c ...

  5. 关于Redis的配置

    Redis-配置 1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no 2. 当Redis以守护进程方式运行时,Redis默认会把pid ...

  6. HTTP协议(TCP/IP)

    HTTP协议(TCP/IP): 服务器套接字(TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点,这种端点就叫做套接字(socket)或插口)   数据包(请求包.报文)http 请求格式: ...

  7. 通过thriftserver的beeline/jdbc等方式连接到SparkSQL

    thriftserver和beeline的简单配置和使用启动thriftserver: 默认端口是10000 ,可以修改 $ ./${SPARK_HOME}/sbin/start-thriftserv ...

  8. Python 全栈开发五 迭代器 生成器 装饰器

    一.迭代器 迭代协议:对象必须提供一个next方法,执行该方法后会返回迭代的下一项或者抛出Stopiteration异常,终止迭代.切只能往前,不能倒退. 可迭代对象:遵循迭代写一点对象就是可迭代对象 ...

  9. 8款不错的 CI/CD工具

    Jenkins Jenkins是CI市场中最知名且最常见的名号之一.其最初是由Sun公司的一位工程师打造的一个辅助项目,并迅速扩展为最大的开源CI工具之一,可帮助工程团队实现自动化部署.顺带一提:我们 ...

  10. SEO--多领域

    1.社交媒体SEO优化,例如:视频,吸引流量 2.电商SEO,很多不是皇冠的商家也可以被搜索到 3.新媒体 微博 和 微信营销 手机端的SEO等.传统的SEO已经渐渐不具备竞争力 SEO盈利:网盟.广 ...