C#语言中的数组和集合

数组和集合

一、数组:具有定长性,占用内存少,遍历速度快,可实现的功能偏少,适用于数据数量确定的功能实现。

1. 数组的声明与赋值

声明:数据类型[ ]变量名;
                               赋值:变量名=new 数据类型[长度]
                               合并书写:数据类型[ ]变量名=new 数据类型[长度]
               2.数组每一项的类型默认值:
                               数字类型:默认值为0
                               bool类型:默认值为false
                               char类型:默认值为\0
                               string类型:默认值为null

3.数组项的读取与修改
                              读取:变量名[索引]
                              修改:变量名[索引]=值;
               4.读取数组长度
                              读取数组长度:变量名.length
                              返回类型:int
               5. 数组的定长性
                              一个数组在创建后,它的长度固定不变

二、集合:不定长度,占用内存多,遍历速度慢,可实现功能多,适用于数据数量变化频繁的功能实现。

List集合

1.创建
                       定义:List<数组类型>变量名;
                       赋值:变量名=new list<数据类型>();无需制定长度
                       初始化器:变量名=new list<数据类型>{元素1、元素2........}
                   2. 操作
                       添加元素:变量名.Add(要添加的数据)加在末尾
                       插入元素:变量名.Insert(索引,要插入的数据)
                       删除元素
                       变量名.RemoveAt(索引);
                       删除指定索引位置元素
                       变量名.Remove(数据)
                       删除集合中与填写数据相同的第一个匹配项
                       修改元素:变量名[索引]=值; 读取和修改元素和数组相同
                       获取元素数量:变量名。count

三、数组和集合的遍历

1. 使用for循环实现遍历(代码书写相对复杂,功能全面)

for (int i=0; i<arrays.length-1; i++)
                      {
                      console.writeline(arrays[i]);
                      }
                      要实现数组的遍历可以使用循环

2.使用 foreach循环遍历(书写代码相对简单,但只能读取,不可更改数组集合的数据,实现功能少)
                     只能用于遍历数组或集合
                     代码格式:
                     foreach(数据类型 变量 in 数组或集合)
                     {
                           循环体
                     }
                     foreach循环也叫做只读循环,再循环体中,不能更改集合或数组

原文地址:https://www.cnblogs.com/qdxiaochong/p/9165156.html

时间: 2024-10-20 18:37:23

C#语言中的数组和集合的相关文章

C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响)

C#不允许在foreach循环中改变数组或集合中元素的值(注:成员的值不受影响),如以下代码将无法通过编译. foreach (int x in myArray) { x++; //错误代码,因为改变了元素的值 Console.WriteLine(x); } 如果要让自定义的数据类型支持foreach循环,则该类型必须实现IEnumerable<T>接口,且存在对应此列表的IEnumerator<T>实现. 实际上,在.Net的底层(IL语言层面)而言, foreach (var

Java语言中的----数组

day07  Java语言中的--数组 一.数组的概述: 什么是数组?数组是干什么用的?为啥要学数组?这些都是疑问.再你学完数组以后就知道了,数组是存储在相邻内存位置的单一数据类型的元素集合.什么是单一数据类型?就是在你定义数组的时候的数据类型,就只能存储这一个类型的数组.那么我们访问他的时候就直接通过指定数组的名字和下标就可以直接访问数组元素了. 二.数组: 1.定义数组         数据类型 数组名[] = new  数据类型[内存数据大小]         int a[] = new 

《C语言中动态数组的创建及引用》

C语言中动态数组的创建及引用 动态数组是相对于静态数组而言的,静态数组的长度是预定义好的,在整个程序中,一旦给定了数组大小后就无法改变,,而动态数组则不然,它可以根据程序需要重新指定数组的大小.动态数组的内存空间是由堆动态分配的,通过执行代码为其分配储存空间,只有程序执行到分配语句时,才为其分配储存空间. 对于动态数组,其创建比静态数组更麻烦一些,使用完必须由程序员自己释放,否则将引起内存泄漏,但是其使用非常灵活,能根据程序需要动态分配大小,因此相对于静态数组来说,使用动态数组的自由度更大. 对

【示例】C语言中利用数组存放函数指针

C语言中利用数组存放函数指针,增加函数使用的灵活性.使用时只需提供数组索引,即可调用不同函数. 预备知识: 1.指向函数的指针 一个函数在编译时被分配一个入口地址,这个地址就被称为函数的指针. 例如: int max(int,int); // 声明函数,比较两数大小 int (*p)(); //声明指向函数的指针变量 p=max; //将函数max的入口地址赋给指针变量p int c=(*p)(a,b); //调用函数 2.函数指针作为函数参数 该例子中每次给process函数不同实参(函数名)

C语言中字符数组和字符串指针分析

这几天搞Unix上的C程序,里面用到了很多字符数组和字符串指针,我记得在学完C语言后相当一段时间里,对指针这个东西还是模模糊糊,后来工作也没怎么 用到过C,虽然网上这类的文章也有很多,还是决定自己在这做个小总结,也算加深下自己的印象,写了下面的测试程序: #include <stdio.h> int main(int argc, char *argv[]){ char day[15] = "abcdefghijklmn";  char* strTmp = "opq

c语言中的数组名代表的意义

数组名是数组的首地址,就是数组中的第一个元素的地址,是常量.常量是不能值在=的左边的.数组和指针的区别在于,指针是变量,是用来存储指向数据的地址的变量,而数组名是常量.一般情况下申明一个数组,比如char  a[10]; 之后  数组名a都是数组的首地址,是一个地址常量.但是在函数申明的形参列表中除外,比如: int  fo(char []); 在这种情况下的申明与 int  fo(char a[]); int  fo(char *a); 是等价的,就是说在这种情况下,就算你写的是数组的形式,编

将容器中(数组、集合)的数据串成字符串

开发工具VC7(VS2002) 核心代码用到MFC,测试代码用到stl 本代码功能,将容器中(数组.集合)的数据串成字符串 核心代码和扩展代码往往不是一个人完成的. 扩展代码和使用也很可能不是一个人写的. //核心代码 template<class TYPE> class IGetEleStr { public: virtual  CString GetStr(const TYPE& ele) const =0 ; }; class IGetSpe { public: virtual

Java语言中学习数组、运算符、流程控制的一些理解

一.数组 1.数组的概念及作用 数组是相同数据类型的元素的集合:   数组本身是引用数据类型,即对象.但是数组可以存储基本数据类型,也可以存储引用数据类型. 例如: int [] a = new int [] {1,2,3,4,5,6,}; String [] s = new String [] {"小兔","小小兔","小小小兔",} : Employee [] e = Employee [10];(Employee是自定义类). 2.数组的声

java中有关数组或集合的起始位详解

在jdbc连接数据库时,起始位都是从1开始的 例如:Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis", "root", "ms"); String sql="SELECT * FROM users WHERE NAME=?"; pstm=