C#中数组与ArrayList的简单使用

1. 多维数组

多维数组:行数和列数在定义时已确定

string[,] arr = new string[2, 3];
arr[0, 0] = "坐标:1-1";
arr[0, 1] = "坐标:1-2";
arr[0, 2] = "坐标:1-3";
arr[1, 0] = "坐标:2-1";
arr[1, 1] = "坐标:2-2";
arr[1, 2] = "坐标:2-3";

int m = arr.GetLength(0);    // 行数
int n = arr.GetLength(1);    // 列数

StringBuilder str = new StringBuilder();    // 类似于String类型变量

for (int i = 0; i < m; i++) {
    for (int j = 0; j < n; j++) {
        str.Append(arr[i, j] + "  ");
    }
}
Console.WriteLine(str.ToString());

2. 锯齿数组

锯齿数组:行数确定,列数不定,数组里套数组。

int[][] arr = new int[3][];
arr[0] = new int[] { 1, 2, 3, 4 };
arr[1] = new int[] { 100 };
arr[2] = new int[] { 10, 20, 30 };

foreach (int[] i in arr) {
    foreach (int x in i) {
        Console.WriteLine(x);   // 遍历所有元素
    }
}
Console.WriteLine(arr[2][2]);   // 访问单一元素,注意和多维素组的差别,会输出30

3. 数组的常用操作

  • arr.Length属性:数组中元素个数;
  • arr.GetLength(n):获取数组arr第n维元素的个数;
  • arr.Rank:获取数组arr的维数;

①克隆数组,就是复制一份新的

int[] arr = new int[] { 1, 2, 3, 4};
int[] arr2 = (int[])arr.Clone();
for (int i = 0; i < arr2.Length; i++)
{
    Console.Write(arr2[i]);
}

4. ArrayList

命名空间:using System.Collections;

ArrayList就是传说中的动态数组,它可以动态的增加和减少元素,另外它可以存储任意个数和任意类型的元素。

属性
  • Count属性是目前ArrayList包含的元素的数量,这个属性是只读的
  • Capacity属性是目前ArrayList能够包含的最大数量,可以手动的设置这个属性,但是当设置为小于Count值的时候会引发一个异常。
方法
  • Add(v):添加一个元素(参数v,任何类型)到当前列表的末尾
  • AddRange方法用于添加一批元素到当前列表的末尾
  • Remove方法用于删除一个元素,通过元素本身的引用来删除
  • RemoveAt(i):方法用于删除一个元素,通过索引值(参数i)来删除
  • RemoveRange用于删除一批元素,通过指定开始的索引和删除的数量来删除
  • Insert用于添加一个元素到指定位置,列表后面的元素依次往后移动
  • InsertRange用于从指定位置开始添加一批元素,列表后面的元素依次往后移动
  • Clear():方法用于清除现有所有的元素
  • Contains(v):方法用来查找某个对象(参数v)在不在列表之中
  • ToArray(Type t):这个方法把ArrayList的元素Copy到一个新的数组中,参数为Type类型
① 简单使用
ArrayList list = new ArrayList();  // 声明变量

list.Add(2);
list.Add("北京");
list.Add(new int[] { 2, 4, 6 });
list.Add("南京");
list.Add(3);

foreach (var p in list) {
    Console.Write(p.ToString() + " | ");  // 输出:2 | 北京 | System.Int32[] | 南京 | 3 |
}
② ArrayList与数组转换

元素类型相同的转换

ArrayList list = new ArrayList();
list.Add(1);
list.Add(2);
list.Add(3);

// 转换方式1:ToArray()
int[] list2 = (int[])list.ToArray(typeof(int));

// 转换方式2:CopyTo()
int[] list3 = new int[list.Count];
list.CopyTo(list3);

元素类型不同的转换

ArrayList arr = new ArrayList(){ "北京", 1};   //往数组中添加不同类型的元素

object[] arr2 = (object[])arr.ToArray(typeof(object)); //正确
string[] arr3 = (string[])arr.ToArray(typeof(string)); //错误

转载于:https://www.cnblogs.com/ysz12300/p/5595907.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值