【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();
需根据集合类型进行相应的赋值和取值
【2017-03-02】C#集合,结构体,枚举的更多相关文章
- OC基础--结构体 枚举做类成员属性
结构体 枚举作类的成员属性: 定义一个学生类 性别 -- 枚举 生日 入学日期 毕业日期 -- 结构体 代码示例: 声明文件 Student.h: #import <Foundation ...
- C# 结构体 枚举类型
注意:枚举类型和结构体都属于值类型. 结构体:就是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样. 一.定义的方法: struct student { public int nianl ...
- C# 类&结构体&枚举
类: class Lei //要和static void Main(string[] args)平级: { public int lei_int; //public是关键字,代表访问权限,这里是公 ...
- C 碎片八 结构体&枚举&联合
一.结构体 1, 结构体定义 结构体类型的定义:任意数据类型变量的集合.用于描述一个具体的事物的信息,在C语言中描述一件事物一般都是用结构体 声明结构体类型的格式: struct 结构体名 {成员列 ...
- C#基础 结构体 枚举类型
结构体:就是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样. 一.定义的例子: struct student { public int nianling; public int fen ...
- C语言的结构体,枚举类型在程序中的作用
http://www.xue63.com/xueask-1221-12212854.html 结构和枚举类型从程序实现的角度来说,是用更接近自然语言的方式来表达数据.比如说实现2维空间的点,你可以使用 ...
- C++_知识点_结构体/枚举/联合
//C++中结构体的不同之处 #include <iostream> #include <string> using namespace std; int main(void) ...
- C#学习笔记_12_枚举&结构体
12_枚举&结构体 枚举 是一种数据类型 适用于某些取值范围有限的数据 语法: [访问权限修饰符] enum 枚举名 { 枚举值 } 枚举名遵循大驼峰命名法 枚举一般情况下是和switch c ...
- Swift超详细的基础语法-结构体,结构体构造器,定义成员方法, 值类型, 扩充函数
知识点 基本概念 结构体的基本使用 结构体构造器(构造函数/构造方法) 结构体扩充函数(方法), 又称成员方法 结构体是值类型 1. 基本概念 1.1 概念介绍 结构体(struct)是由一系列具有相 ...
- swift中类与结构体
写了12个Person来复习,不过完成同样的代码需要敲键盘的次数相比OC确实少了很多,这很多应该归功于Swift中不写分号,以及少了OC中的中括号. 一.类与结构体 两者在Swift中差不了多少了 类 ...
随机推荐
- pip技巧(加速下载和安装)
pip技巧(linux同样) 某些开发包下载过程中会很慢,会出现timeout的情况,解决办法: 可以配置下镜像,加速下载和安装 1.python的豆瓣源地址(镜像) https://pypi.dou ...
- 内置函数time
time import time.time() # 浮点型,给计算机看,随机 时间有三种: First: 时间戳 (time.time()) Second: 结构化时间 可以修改 Third: ...
- 数组的filter与includes方法
题目:编写函数 array_diff(a,b),传入两个数组a,b,将数组a中包含b的值全部去掉,重复的也去掉,返回去掉之后新数组 function array_diff(a, b) { return ...
- 安装MongoDB报错
尝试多次,最后找到解决方式: 在安装的最后一步的时候不要勾选左下角的compass即可 命令行mongod --version测试安装是否成功
- MySQL Sandbox安装使用
前言 经常看见新同学对于安装MySQL十分惧怕,这是因为不熟悉的缘故,确实源码编译比较麻烦,缺少各种依赖包也够折腾的.当然还有预编译包,但是对于新同学来说好像都挺麻烦的.当然有yum安装,但是我们需要 ...
- 小程序支持打开APP了 还有小程序的标题栏也可以自定义
就在刚刚,小程序上线两个新能力——小程序支持打开APP了,小程序的标题栏区域开放自定义.用户可以在小程序里更方便地获取到APP的服务了——APP链接分享到微信,打开小程序页面后,用户从该小程序页面里, ...
- 如何卸载VMware虚拟机?
如何卸载VMware虚拟机? 1.windows + R 打开>运行-->regedit(打开编辑注册表)-->找到HKEY_LOCAL_MACHINE-->Software ...
- DNS服务基础原理介绍
FQDN 全称域名 localhost(主机名或者是别名).localdomain(域名) FQDN=主机名.域名 根域 . 顶级域名 .com .n ...
- 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——实现篇:(七)RTP音视频传输解析层之H264传输格式
一.H264传输封包格式的2个概念 (1)组包模式(Packetization Modes) RFC3984中定义了3种组包模式:单NALU模式(Single Nal Unit Mode).非交错模式 ...
- css3--单行、多行文本溢出
<style> .div1 { width: 200px; height: 200px; background: red url(img/user.png) no-repeat; text ...