06--C# 数组与集合--1

目录

一维数组

定义数组语法:

数组初始化:

二维数组

定义语法:

初始化两种方式,同一维数组类似:

数组的一些属性和方法

ArrayList

ArrayList:

ArrayList与数组的对比

ArrayList 定义语法: 

ArrayList 常用的几种方法:

1、Add() 方法:

2、Insert() 方法:

3、Clear() 方法

4、Remove()方法

5、RemoveAt() 方法

6、RemoveRange() 方法

7、Contains() 方法

一维数组

定义数组语法:

1、分别进行数组的声明和分配内存:

        数组元素[] 数组名字;-->  int[] arr;

        数组名字 = new 数组元素类型[数组元素的个数];--> arr = new int [5];

2、声明并为数组分配内存:

        数组元素类型[] 数组名 = new 数组元素类型[数组元素个数]; -->  int[] arr = new int[5];

        示例:

        int[] arr1 = new int[] {1,23,4,5,6};

        int[] arr2 = new int[] {1,2,9};

        int n= arr1.Length + arr2.Length;

        int[] arr3 = new int[n]; 

数组初始化:

1、int [] arr = new int[]{1,2,5,6,8};    //5个int 类型元素的数组

2、int[] arr = {23,1,53,1};                 // 4个int 类型元素的数组

二维数组

定义语法:

声明二维数组:

    数组元素类型[,] 数组名字;    -->int[,]  arr;  

二维数组有两种为数组分配内存的方式:

1、直接为每一维数组分配内存  -->     int[,] arr = new int[2,4];

2、 分别为每一维分配内存 -->            int[][] a = new int[2][];  a[0] = new int[2]; a[1] = new int[3];

初始化两种方式,同一维数组类似:

1、int[,] arr1 = new int[,]{{12,3}.{10,3}}; 

2、int[,] arr2 = {{3,77},{5,78}};

数组的一些属性和方法

1、Rank属性

      可以输出数组的秩(即数组的维数)

2、GetLowerBound()和GetUpperBound()方法

     GetLowerBound() 可以得到指定维数的下限;

     GetUpperBound()可以得到指定维数的上限;

举例:输出三维数组的1、2的属性和方法

 int[, ,] arrr = new int[2, 5, 9];
 Console.WriteLine("arrr.Rank--" + arrr.Rank);
 Console.WriteLine("Arr.GetLowerBound(0)--" + arrr.GetLowerBound(0));
 Console.WriteLine("Arr.GetLowerBound(1)--" + arrr.GetLowerBound(1));
 Console.WriteLine("Arr.GetLowerBound(2)--" + arrr.GetLowerBound(2));
 Console.WriteLine("arrr.GetUpperBound(0)--" + (arrr.GetUpperBound(0)+1));
 Console.WriteLine("arrr.GetUpperBound(1)--" + (arrr.GetUpperBound(1)+1));
 Console.WriteLine("arrr.GetUpperBound(2)--" + (arrr.GetUpperBound(2)+1));

运行结果:

 

3、Array.Sort()和Array.Reverse()方法

      示例:

         int[] arrx = new int[] { 9, 2, 25, 63, 10, 11, 56, 23 };
         Array.Sort(arrx);
         Array.Reverse(arrx);

ArrayList

从上面数组的语法来看,定义和使用数组的时候,都需要先声明数组的数据类型和分配空间,并且一个数组只能具有一种数据类型并且需要提前固定数组的元素个数,在对数组进行元素的添加、删除等操作也非常的麻烦,基于此,C#提供了更好的解决方式-->集合,下面介绍C# 集合ArrayList;

ArrayList:

位于System.Collection 命名空间下

ArrayList与数组的对比

(ArrayList经常被看作扩充了功能的数组):

1、数组的容量是固定的,而ArrayList的容量可以自动扩充;

2、ArrayList提供添加、删除、插入某一范围元素的方法,但数组仅能获取或设置一个元素的值;

3、ArrayListu提供将只读和固定大小包装返回到集合的方法,而数组不提供;

4、ArrayList只能是一维形式,而数组可以是多维的;

5、ArrayList可以是多种数据类型,而数组都是提前定好的一种类型的数据类型

ArrayList 定义语法: 

1、默认形式,将以默认的大小(16位)来初始化内部的数组:

        ArrayList  list = new ArrayList();

        for(int i=0; i< 10; i++)    //给ArrayList对象添加10个int 元素

                list.Add(i);        

2、用一个ICollection 对象来构造,并将集合的元素添加到ArrayList 中:

        int[] arr = new int[]{1,2,3,4,5,6,7,8,9};

        ArrayList  list = new ArrayList (arr);

3、用指定的大小初始化内部的数组:

        ArrayList  list = new ArrayList (12);

        for(int i=0;i<list.Count;i++)

                list.Add(i);   //给ArrayList 对象添加12个int元素

ArrayList 常用的几种方法:

1、Add() 方法:

用于将对象添加到ArrayList 集合的末尾处

语法:public virtual int Add(Object value)

value:添加到ArrayList 末尾处的Object类型的值,该值可以为null;

返回值:ArrayList 索引

2、Insert() 方法:

用于将元素插入到ArrayList 集合的指定索引处

语法:public virtual void Insert(int index, Object value)

index: 从零开始的索引,在该位置插入value;

value: 要插入的Object类型的数据,该值可以是null

3、Clear() 方法

用于移除ArrayList 中所有元素;

语法:public virtual void Clear()

4、Remove()方法

用来从ArrayList 中移除特定对象的第一个匹配项,如果不包含指定对象,则ArrayList 保持不变

语法:public virtual void Remove(Object obj)

obj:要从ArrayList 中移除的Object ,该值可以为null;

5、RemoveAt() 方法

用来移除ArrayList 的指定索引处的元素

语法:public virtual void RemoveAt(int index)

6、RemoveRange() 方法

用来从ArrayList 中移除一定范围的元素

语法:public virtual void RemoveRange(int index,int count)

index:要移除的元素的范围起始索引

count:要移除的元素数

7、Contains() 方法

用来确定某元素是否在ArrayList集合中;

语法:public virtual bool Contains(Object item)

item: 要在ArrayList 中查找的Object,该值可以是null;

返回值:如果在ArrayList 中找到item,则为true,否则为false;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值