C#语言中数组与集合的区别(以List集合为例)

数组用于保存固定数量的数据,定长,占用内存少,遍历速度快;

集合保存的数据数量,可以在程序的执行过程中,不断发生变化,不定长,占用内存多,遍历速度慢;

在功能上,数组能实现的所有功能,集合都能实现;反之,集合能实现的某些功能,数组难以实现。

下面以List集合为例,具体说明集合与数组的区别:

1、定义的格式

集合:List <数据类型> 变量名;

数组:数据类型 [ ] 变量名;

2、赋值

集合:变量名 = new List <数据类型> ( );  集合是不定长的,所以赋值时无须制定长度,赋值后长度可以变化。

数组:变量名 = new 数据类型 [长度]; 由于数据的定长性,所以赋值时必须指定长度,赋值后长度固定不变。

3、初始化器

集合: 变量名 = new List <数据类型> { 元素1,元素2,... ...,元素n };

数组: 变量名 = new 数据类型 [ 长度 ] {元素1,元素2,... ...,元素n};

数据类型 [ ] 变量名 = {元素1,元素2,... ...,元素n};  数组初始化器的简化写法,不适用于集合。

4、由于集合不定长性,集合可以添加、插入、删除、修改元素,还可获取元素数量,以List集合为例分别说明:

4-1、添加元素

变量名.Add (要添加的数据); 其中添加的数据类型必须与集合定义时规定的元素类型一致

4-2、插入元素

变量名.Insert(索引,要插入的数据);  向集合中制定的索引位置,插入一个新的元素

4-3、删除元素

变量名.RemoveAt(索引); 删除制定索引位置的元素

变量名.Remove(数据); 删除集合中与填写的数据相同的第一个匹配项

ps:添加、插入、删除元素后,集合的索引将自动重新编排

4-4、修改元素

变量名. [索引] = 值; 读取和修改元素与数组的操作方法完全一致

4-5、获取元素数量

集合: 变量名.Count

数组:变量名.Length

时间: 2024-08-26 02:34:06

C#语言中数组与集合的区别(以List集合为例)的相关文章

对于C语言中数组名是指针的理解

我们都知道,c语言中数组名是一个指针,比如下面这段代码 #include<iostream>using namespace std;int main(){ int a[4]={1,2,3,4}; for(int i=0;i<4;i++) {  cout<<*(a+i);//*(a+i)和a[i]是等价的.  cout<<endl; } return 0;} 但是看下面这个代码 #include<iostream>using namespace std;

C#语言中数组和集合

数组.集合→用于储存多个同类型的数据数组 定长→用于保存固定数量的数据 在功能上,数组能实现的所有功能,集合都能实现:反之,集合能实现的某些功能,数组难以实现 占用内存少 便利速度快集合 不定长→保存的数据数量,可以在程序的执行过程中,发生变化 占用内存多 便利速度慢课时六:数组和集合 数组.集合→用于储存多个同类型的数据 数组 定长→用于保存固定数量的数据 在功能上,数组能实现的所有功能,集合都能实现:反之,集合能实现的某些功能,数组难以实现 占用内存少 便利速度快 集合 不定长→保存的数据数

C语言中数组与指针

数组是内存空间的一片连续的区域,用于存贮一组相同数据类型元素的集合. 指针变量中存放的是变量的地址,通过指针取得地址,再通过地址提取数据. 在大多是C语言书中,都有这样的说法,“数组和指针是相同的”.其实,数组与指针,只能在特定的情况下才是相同的,在大多书情况下,他们并不相同. C语言中每个表示变量的符号都代表一个地址,而每个变量的值就是该地址里所存储的内容. 定义一个字符数组 char a[]="asdfghjkl";现在来访问第i个字符a[i],编译器符号表中具有一个符号,它代表的

C语言中二进制文件和文本文件的区别

所有的信息在内存中都是以二进制的形式进行存储的,这说明了二进制文件和文本文件不是在硬件上进行区分的. 二进制和文本文件因为操作系统的不同而不同,毕竟不同的人实现同一问题的思路也不是完全一样的嘛,首先说一下比较简单的那个:在Linux环境中,二进制文件和文本文件不进行区分.也就是说这两种方式在Linux操作系统下的实现机制是一样的:在OS X下面,太高大上了,用不到,所以也不关心:在Windows下面,二进制和文本文件是有区别的,下面就主要说明一下两者在Windows环境下的区别以及对应的文件操作

c语言中数组名的本质

c语言中的数组名的本质是什么,数组名是指针吗? 1.数组名是数组元素的首地址#include <stdlib.h>#include <stdio.h>void main() { int a[10] = {1, 2, 3, 4, 5, 6, 7, 8,9, 10}; printf("a:%d &a:%d :%d \n", a, &a); system("pause"); }上面的程序中,a &a大小一样,证明a就是数组元

c语言中数组名和指针变量的区别

编译器工作原理:在64位的计算机中,当创建一个指针变量时,计算机会为它分配8个字节的存储空间.但如果创建的是数组呢?计算机会为数组分配存储空间,但不会为数组变量分配任何空间,编译器仅在出现它的地方把它替换成数组的起始地址. 结论1:由于计算机没有为数组变量分配空间,也就不能把它指向其他地方.例题: char s[]="How big is it?"; char *t=s; //正确,将数组的地址赋给指针变量t s=t; //错误,数组变量没有存储空间,无法存储指针变量t的值,编译报错

C语言中堆和栈的区别

原文:http://blog.csdn.net/tigerjibo/article/details/7423728 一.前言: C语言程序经过编译连接后形成编译.连接后形成的二进制映像文件由栈,堆,数据段(由三部分部分组成:只读数据段,已经初始化读写数据段,未初始化数据段即BBS)和代码段组成,如下图所示: 1.栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量等值.其操作方式类似于数据结构中的栈. 2.堆区(heap):一般由程序员分配释放,若程序员不释放,则可能会引起内存泄

C++语言中数组指针和指针数组彻底分析

#################################                              ##       基本知识               ##                              ################################# 当然我们一切都是从最简单的内建类型开始,最后我会做一些推广.先看一下基本的形式,我们从这里起步! Cpp代码 --------------指针---------------- int a

C语言中数组使用负数值的标记

·引 对数组的认知 在c语言中,我们经常使用的一个结构便是数组,在最开始学习数组的时候,它被描述成这样(以一维二维数组为例):一维数组是若干个数连续排列在一起的集合,我们可以通过0-N的标记(N为数组的长度)来访问每一个元素.二维数组则是一维数组的集合.所以在最开始我们对二维数组的概念是这样的: 然后推而广之到三维数组 很合理的,我们通过**空间结构**去类比数组的一维与二维,那么问题来了,在计算机当中它又是怎么"类比"这些数组的呢?我们先看一些代码 #include <stdi