6.C#数组

在C#中,数组是一种用于存储多个相同类型元素的数据结构。它提供了一种有序、索引的方式来访问和操作元素。

数组是在内存中连续分配的一段存储空间,可以有效地存储和访问大量相同类型的数据。

一维数组

1.声明数组:要声明一个数组,需要指定元素的类型和数组的名称,并使用方括号 [] 指定数组的大小。例如:

int[] numbers; // 声明一个整数数组
string[] names; // 声明一个字符串数组

2.创建数组:创建数组时,需要使用关键字 new 后跟数组类型和大小。例如:

numbers = new int[5]; // 创建一个包含 5 个整数的数组
names = new string[3]; // 创建一个包含 3 个字符串的数组

3.访问数组元素:通过索引来访问数组中的元素。索引从 0 开始,依次递增。例如:

numbers[0] = 10; // 设置第一个元素的值为 10
int x = numbers[1]; // 获取第二个元素的值

4.数组长度:可以使用 Length 属性获取数组的长度,即数组中元素的个数。例如:

int count = numbers.Length; // 获取数组的长度

5.遍历数组:可以使用循环结构(如 for 循环或 foreach 循环)遍历数组中的所有元素。例如:

for (int i = 0; i < numbers.Length; i++)
{
    Console.WriteLine(numbers[i]);
}

foreach (string name in names)
{
    Console.WriteLine(name);
}

多维数组

1.声明多维数组:要声明一个多维数组,需要指定每个维度的大小,并使用方括号 [] 指定数组的名称。例如:

int[,] matrix; // 二维数组
string[,,] cube; // 三维数组

2.创建多维数组:创建多维数组时,需要使用关键字 new 后跟数组类型和各个维度的大小。例如:

matrix = new int[2,2]{{1,1},{2,2}} // 创建一个 2 行 2 列的二维数组
cube = new string[2,,2,,2]{{{1,1},{1,1}},{{2,2},{2,2}},{{1,1},{1,1},{2,2},{2,2}}; 
// 创建一个 2 × 2 × 2 的三维数组

3.访问多维数组元素:通过使用逗号分隔的索引来访问多维数组中的元素。索引从 0 开始,每个维度都有自己的索引范围。例如:

matrix[0, 0] = 10; // 设置第一个元素的值为 10
int x = matrix[1, 2]; // 获取第二行第三列的元素值

4.多维数组的长度:可以使用 GetLength() 方法来获取每个维度的长度。例如:

int rows = matrix.GetLength(0); // 获取二维数组的行数
int columns = matrix.GetLength(1); // 获取二维数组的列数

5.遍历多维数组:可以使用嵌套的循环结构(如嵌套的 for 循环)来遍历多维数组中的所有元素。例如:

for (int i = 0; i < matrix.GetLength(0); i++)
{
    for (int j = 0; j < matrix.GetLength(1); j++)
    {
        Console.WriteLine(matrix[i, j]);
    }
}

动态数组 

  1. 动态大小:ArrayList 可以根据需要动态调整大小,不需要预先指定容量。

  2. 存储不同类型的对象:ArrayList 可以存储任意类型的对象,包括值类型和引用类型。

  3. 自动装箱和拆箱:当将值类型存储在 ArrayList 中时,会自动进行装箱(将值类型包装为引用类型)和拆箱(将引用类型拆箱为值类型)。

  4. 索引访问:可以使用索引来访问和修改 ArrayList 中的元素,类似于数组。

  5. 动态添加和删除元素:ArrayList 提供了添加和删除元素的方法,如 Add()Remove()Insert() 等。

  6. 遍历元素:可以使用 foreach 循环或通过索引循环遍历 ArrayList 中的元素。

 然而,随着 .NET Framework 的发展,推荐使用泛型集合类型(如 List<T>)代替 ArrayList。泛型集合提供了类型安全性和更好的性能,而 ArrayList 存在装箱和拆箱操作,可能导致性能下降。因此,在新的代码中,建议使用泛型集合类型来替代 ArrayList

using System;
using System.Collections;

class Program
{
    static void Main()
    {
        ArrayList list = new ArrayList();

        // 添加元素
        list.Add("Apple");
        list.Add(10);
        list.Add(DateTime.Now);

        // 遍历元素
        foreach (var item in list)
        {
            Console.WriteLine(item);
        }

        // 修改元素
        list[1] = 20;

        // 删除元素
        list.Remove("Apple");

        // 根据索引访问元素
        Console.WriteLine(list[0]);

        Console.ReadKey();
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值