在学习或工作中,集合是经常用到的,可以换一句话说“无项目无集合”,“项目皆有集合”。它一般存储一系列数据或者将一系列数据进行相关操作。在这里先大略谈一些集合类型的相关知识用于回顾。

数组(Array)

数组一般只存储一种类型的数据,有一维数组,二维数组等多维数组。都基于System.array类。

格式:type[]  typename;  type指类型,typename指数组名称。

一维数组有多种书写形式:

int [] a={1,2,3};

int [] b=new int[]{1,2,3};

int [] c;  c=new int[]{1,2,3};

int [] d=new int[3];d[0]=1;d[1]=2;d[2]=3;

二维数组:相当于表格

int[,] e=new int[2,2];  e[0,0]=1;e[0,1]=2;e[1,0]=3;e[1,1]=4;//两行两列

int[,] f=new int[2,2]{{1,2},{3,4}};//已知行列数

int[,] f=new int[,]{{1,2},{3,4}};//未知行列数,根据后面的初始化来规定行列数

三维 类推,相当于四方体。

交错数组:相当于一维数组的每一个元素又是一个数组。常称为,数组的数组。

int[][] h=new int [2][]{new int[]{2,4,6},new int[]{1,2,3,4,5}};

int[][] i=new int[][]{new int[]{2,4,6},new int[]{1,2,3,4,5}};

int[][] j={new int[]{2,4,6},new int[]{1,2,3,4,5}};

int[][] k=new int[2][]; k[0]=new int[3]{2,4,6}; k[1]=new int[5]{1,2,3,4,5};

则,k[0][0]=2;k[0][1]=4;k[1][2]=3;....

int[][,] m=new int [2][,]

{   new int[,] {{1,3},{5,7}},new int[,]{{0,2},{4,6}}}

数组常用操作

(1)遍历数组

int [] a={1,2,3};

foreach(int n in a){Console.WriteLine(n);}

结果输出 1 2 3

(2)数组字符串之间转换

string[]  sArr1={"123","456","789"};

string   str1=sArr1.Join(",");//结果为字符串:123,456,789

string[]  sArr2=str1.Split(',');//字符串转化为string数组,去掉分隔符“,”,转化维数组

-----------------------------------------------

string  str2="abc 12,65;8"

string []  sArr2=str2.Split(',' ,' ' ,';');

----------------------------------------------

string s="13mnnfsj";

char[]  a=s.TocharArray();\\将字符串转化为char数组。

(3)常用函数

int[] a={1,2,3,4};

a.Sum();//总和;  a.Average();  a,Min();   a.Max();

(4)排序、复制、查找

int  []a={1,2,3};

int  []b=new int[a.Length];

Array.Copy(a,b,a.Length);//将a数组复制到b数组

Array.Sort(a);//将a数组升序排列

Array.Reverse(a);//将a数组反转排序

使用Contains方法和IndexOf方法查找指定的元素。

ArrayList类

相当于一种高级动态数组。using System.Collections.Generic;它比数组更高级,可以动态的删除和添加元素并且它的容量可以扩充,但是它只有一维的形式。一般有三种构造方式。

一,默认的大小(16)来初始化

ArrayList arr=new ArrayList ();

二,将一个集合元素添加ArrayList 中

int[] a=new int[]{1,2,3};

ArrayList arr1=new ArrayList (a);

三,指定大小来初始化,

ArrayList arr2=new ArrayList (100);

常用属性:略,在VS里,比如输入 以上的arr2.时就会显示其属性和说明。

常用方法

int[] a=new int[]{1,2,3};

ArrayList arr1=new ArrayList (a);

(一)增加

1,Add(元素);方法,

arr1.Add(7);// arr1元素为1 2 3 7

2,Insert(索引,元素);方法//索引从0开始

arr1.Insert(1,7);// arr1元素为1 7 2 3

(二)删除

1,Clear()方法//删除所有

arr1.Clear();//arr1为空了。

2.Remove(匹配对象)方法//移除首次匹配对象

arr1.Remove(3);//arr1元素为1 2

3,RemoveAt(索引)方法//删除索引对应的元素

arr1.RemoveAt(1);//arr1元素为1 3

4,RemoveRange(索引,范围)方法//从索引处删除一定范围的数

arr1.RemoveRange(1,2);//arr1元素为1

(三)遍历

同数组一样

(四)查找

Contains(元素);方法

arr1.Contain(3);//判断arr1是否包含3这个元素,包含,为True ;不包含为 False

List

using System.Collections.Generic; 它是将ArrayList 规定了类型,提高编码质量,较少了类型之间的错误。在这里大略讲解一下一般List的用法,在以后将会深入研究泛型List的运用。

List <int> lis1=new List<int>();

(一)添加

lis1.Add(500);//直接添加一串元素

list1.AddRange(new int[]{501,502});//添加一串元素。

(二)插入,删除,查找等一系列操作与上面 ArrayList和Array相似。

--------------------------------------------

规定类型也可以为自定义类型,比如:

1,先见一个Person类

class Person {
        public string name ;
        public string Name {
        get{return name;}
            set { value = name; }
        }
    }

2,创建Person对象

Person p = new Person();
            p.name = "Chen";
            Person p1 = new Person();
            p1.name = "Li";
            Person p2 = new Person();
            p2.name = "Zhang";

3,创建Person类型的集合并将Perosn对象放入集合

List <Person>Li=new List<Person>();
            Li.Add(p);
            Li.Add(p1);
            Li.Add(p2);

Console.WriteLine(Li[0].name);//输出集合的第一个元素,结果为:Chen。

C#集合类型——Array、ArrayList、List 之浅谈的更多相关文章

  1. C#集合类型——Hashtable、Dictionary之浅谈

    Hashtable表 数组.数组集合.List集合都是通过索引来访问里面成员.哈希表则是通过键来访问成员值.键不可为空,值可为空. 比如: Hashtable  hash=new  Hashtable ...

  2. C# 中的集合(Array/ArrayList/List<T>/HashTable/Dictionary)

    int [] numbers = new int[5]; // 长度为5,元素类型为 int.string[,] names = new string[5,4]; // 5*4 的二维数组byte[] ...

  3. 【Java集合的详细研究2】浅谈Arrays.asList的使用

    首先,该方法是将数组转化为list.有以下几点需要注意: (1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean) (2)该方法将数组与列表 ...

  4. Swift的基础,操作符,字符串和集合类型

    这篇文章主要讲解苹果Swift官方指南的第二章前四节的要点内容,如果想看完整的英文文档可以去苹果开发者页面下载. Basic 声明常量let 声明变量var 注释依旧使用"//" ...

  5. 浅谈boost.variant的几种访问方式

    前言 variant类型在C++14并没有加入,在cppreference网站上可以看到该类型将会在C++17加入,若想在不支持C++17的编译器上使用variant类型,我们可以通过boost的va ...

  6. 【VS开发】【DSP开发】浅谈Linux PCI设备驱动(二)

    我们在 浅谈Linux PCI设备驱动(一)中(以下简称 浅谈(一) )介绍了PCI的配置寄存器组,而Linux PCI初始化就是使用了这些寄存器来进行的.后面我们会举个例子来说明Linux PCI设 ...

  7. 浅谈Swift集合类型

    Swift 的集合表现形式由数组和字典组成.它可以完美的存储任何呢想存储的东西. 数组是一个同类型的序列化列表集合,它用来存储相同类型的不同值.字典也是一个数组,但它的存值方式类似于Map,通过一对一 ...

  8. 转:C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、Sort)

    C#常用的集合类型(ArrayList类.Stack类.Queue类.Hashtable类.Sort) .ArrayList类 ArrayList类主要用于对一个数组中的元素进行各种处理.在Array ...

  9. java集合类型源码解析之ArrayList

    前言 作为一个老码农,不仅要谈架构.谈并发,也不能忘记最基础的语言和数据结构,因此特开辟这个系列的文章,争取每个月写1~2篇关于java基础知识的文章,以温故而知新. 如无特别之处,这个系列文章所使用 ...

随机推荐

  1. nodejs 模块加载顺序

    nodejs 模块加载顺序 一.当引入模块的形式是 require('lt') 时(1).先找当前文件夹下的node_modules文件夹下的lt文件夹下的package.json 文件指定的main ...

  2. Python第十一章-常用的核心模块03-json模块

    python 自称 "Batteries included"(自带电池, 自备干粮?), 就是因为他提供了很多内置的模块, 使用这些模块无需安装和配置即可使用. 本章主要介绍 py ...

  3. spring-cloud-gateway动态路由

    概述 线上项目发布一般有以下几种方案: 停机发布 蓝绿部署 滚动部署 灰度发布 停机发布 这种发布一般在夜里或者进行大版本升级的时候发布,因为需要停机,所以现在大家都在研究 Devops 方案. 蓝绿 ...

  4. 一篇漫画故事带你理解透HTTPS(上)

    2020年蝙蝠纪元,二毛一如往常的呆在家中,不敢外出去浪. 为排解心中之闷,二毛抽了一口老烟,熟练的打开了全球最大的同性交友网站,准备假装了解下最近流行的项目... 只听啪的一声回车键,哪知浏览器蹦出 ...

  5. win10 安装redis相关问题。

    最近需要在win10安装redis,但是redis的msi文件总是报这个错误: Redis on Windows Setup Wizard ended prematurely 都说是.NET fram ...

  6. MATLAB 动图绘制、保存

    动图有gif格式和视频的avi格式. 1.sin(x)动图 clear all h = animatedline;%动画线 axis([0 4*pi -1 1]) box on x = linspac ...

  7. 实验四 数据查询3-group by等

    实验四 数据库查询 一.  实验内容: 1. Group by语句 2. Having 语句 3. Order by语句 4. Limit语句 5. Union语句 6. Handler语句 二.  ...

  8. XSS编码问题的个人总结

    XSS也太太太难了,主要也是因为自己没花时间集中. 文章脉络:根据我粗浅的理解,从开始学习XSS到现在,从一开始的见框就插到现在去学构造.编码,首先需要的是能看懂一些payload,然后再去深入理解. ...

  9. 个人博客如何申请ICP备案

    目录 前言 一定要备案吗? 备案前的准备 域名 备案资料 备案服务号 如何申请ICP备案 备案成功之后 总结 关于博客的搭建 参考资料 推荐阅读 前言 前一段时间,博客域名在申请ICP备案,暂时不能访 ...

  10. 【公告】请访问我Blog新站——superman2014 www.superman2014.com

    http://www.superman2014.com 欢迎光顾 本博客不在更新!!!!