【.net】数组、ArrayList和List<T>

本文详细介绍了.NET中的数组、ArrayList和List<T>的定义、初始化、优缺点以及相关实例。数组在内存中连续存储,索引速度快,但插入数据不便且需预设长度。ArrayList提供了动态扩容功能,但存在类型不安全和装箱拆箱问题。List<T>作为泛型类,解决了ArrayList的安全性和性能问题,提供了类型安全。
摘要由CSDN通过智能技术生成

被问到数组、ArrayList和List的区别是什么?当下有点蒙,支支吾吾:数组与集合比较类似,都用于存放一组值…
还是来捋一下吧。



1、数组

数组是一组在逻辑上互相关联的值,通过数组名来进行数组元素的存取。

1.1 一维数组

1.1.1定义

int[] a; --整形一维数组a
double[] b; --双精度一维数组b
string[] c; --字符串一维数组c

1.1.2 一维数组动态初始化实例

定义完数组后,要对其进行初始化才能使用。

 [TestMethod]
        public void OneArray()
        {
   
            //借助new运算符动态初始化一维数组
            int[] new_a = new int[2];
            //int[] new_a = new int[2]{1,2}//int[] new_a = new int[]{1,2};
            Boolean[] new_b = new Boolean[2];
            string[] new_c = new string[2];

            //一维数组的元素输出
            for (int i=0; i< new_a.Length; i++)
            {
   
                Console.Write("{0}", new_a[i] + "//" + new_b[i] + "//" + new_c[i]);
                Console.WriteLine();
            }

        }

输出:
0//False//(null)
0//False//(null)

//数值类型数组的初始化值为0
//布尔类型数组的初始值为false
//字符串类型数组的初始化值为null

注意

  • 数组有初始值时,不允许数组长度为变量;
    如:
    int i=2;
    int a = new int[i]{1,2};
    这种写法是错误的

  • 只有当数组没有给初始值时长度才能用变量
    如:
    int i=2;
    int a = new int[i];

给定数组长度时,赋值的个数和数组长度要相等。

1.1.3 一维数组静态初始化实例
 [TestMethod]
        public void OneArray()
        {
   
            //静态初始化一维数组
            int[] static_a = {
    1,2};
            Boolean[] static_b = {
    true,false};
            string[] static_c = {
    "学","姐"};

            //一维数组的元素输出
            foreach (int i in static_a)
                Console.WriteLine("{0}", i);
            foreach (bool i in static_b)
                Console.WriteLine("{0}", i);
            foreach (string i in static_c)
                Console.WriteLine("{0}", i);
        }

输出:
1
2
True
False
学
姐

注意

  • 数组的定义不能和静态初始化赋值分开

    int[] a;
    a={1,2};
    这种写法是错误的,应该int [] a={1,2};

超过数组规定的下标,则会产生溢出的错误


1.2 二维数组

1.2.1定义

int [,] a; --整形二维数组a
double[,] b; --双精度二维数组b
string[,] c; --字符串二维数组c

1.2.2 二维数组动态初始化实例
  [TestMethod]
        public void TwoArray()
        {
   
            //借助new运算符动态初始化二维数组
            int[,] new_a = new int[1,3];
            //int[,] new_a = new int[1,3]{
   {1,2,3}}
            //int[] new_a = new int[,]{
   {1,2,3}};
            Boolean[,] new_b = new Boolean[1,3];
            string[,] new_c = new string[1,3];

            //二维数组的元素输出
            for (int i = 0; i <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值