Array与Arraylist类

由于数组是由system.Array类派生出来的引用对象,可以用该类的方法对数组进行操作。
namespace System { // 提供一些方法,用于创建、处理、搜索数组并对数组进行排序,从而充当公共语言运行时中所有数组的基类。 public abstract class Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable
1.遍历数组:遍历数组的意思就是获取数组中的每一个元素,可以使用foreach方法实现该功能:
例如程序:

 class Program
    {
        static void Main(string[] args)
        {
            int[] arr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
            //定义了一个包含12345678的数组;
            foreach (var num in arr)
             //键盘输入foreach之后按两下Tab键,会出现其使用结构
            {
                Console.WriteLine("数组中的内容是{0}",num);
                //读取每一个数组的内容
            }
            Console.Read();
            
        }  
        
    }
}

还有一个是对数组元素进行添加或这删除,例如程序:

namespace LISTlei
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
            //定义了一个包含12345678的数组;
            Console.WriteLine("数组中的内容是:");
            foreach (var num in arr)
             //键盘输入foreach之后按两下Tab键,会出现其使用结构
            {
                Console.Write(num);
                //读取每一个数组的内容
            }
            Console.Read();
            Console.WriteLine("添加后数组中的内容是:");
            arr = Add1(arr, 4, 3);
            foreach (var item in arr)
            {
                Console.Write(item);
            }
            Console.Read();
        }
        public static int[] Add1(int[] array, int index, int value)
        //这里的array为目标操作数组,index为目标索引位置,value为所需要添加的值;
        //这里是int【】型,所以返回的也是一个int型数组;
        {while (true)
            {
                if (index > array.Length || index < 0)
                {
                    Console.WriteLine("输入有误");
                }
                else
                {
                    int[] newarr = new int[array.Length + 1];
                    //对原数组进行添加操作后,需要显示在一个新的数组内;
                    for (int i = 0; i < index - 1; i++)
                    //这里是把前面未添加部分的给新数组,这里-1操作是由于数组是从0开始定义的;
                    {
                        newarr[i] = array[i];
                    }
                    newarr[index - 1] = value;
                    //在需要添加的第几个数输入自己想输入的数字;
                    for (int i = index; i < array.Length + 1; i++)
                    {
                        newarr[i] = array[i - 1];
                    }
                    return newarr;
                    break;
                }
            }
        }  
        
    }
}

显示结果是:
在这里插入图片描述
可以发现是在第四个位置加了一个3.
下面就介绍arraylis类,该类是位于system.collections下面,他与数组的主要区别是数组在定义的时候其内容长度就定义好了,如果定义的长度过小就容易造成数据溢出,若定义的长度过大就容易浪费资源,所以较为死板,而arraylist可以自由的定义数据的长度,添加删减较为方便。数组的读取和修改只能是一个元素一个元素的进行。

namespace System.Collections
{
   
    //     使用大小会根据需要动态增加的数组来实现 System.Collections.IList 接口。

    public class ArrayList : IList, ICollection, IEnumerable, ICloneable

例如为arraylist添加元素的程序;

class Program
    {
        static void Main(string[] args)
        {
            ArrayList arlist = new ArrayList();
            for (int i = 0; i < 10; i++)
            {
                arlist.Add(i);
                //添加10个数
                Console.Write(arlist[i]);
            }
            Console.Read();
        }
    }

由程序可以看出,在定义arraylist时,不用定义其容量多少,可以在后期自己添加所需要添加的数据。
同时arraylist可以调用数组中的内容,就是数组的转化,例如程序:

namespace arrlist
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr1 = new int[] { 1,2,3,4,3,1};
            //定义一个有6个数字的数组;
            ArrayList arlist = new ArrayList(arr1);
           //定义一个arraylist,并且将数组arr1的值给他
            for (int i = 0; i < arr1.Length; i++)
            {
               
                Console.Write(arlist[i]);
            }
            Console.Read();
        }
    }
   
}

对于arraylist的用法还有一个是元素的查找。使用contains方法来查看所要差的元素是否在其中;他返回的知识bool类型的。
例如程序:

  static void Main(string[] args)
        {
            int[] arr1 = new int[] { 1,2,3,4,3,1};
            ArrayList list1 = new ArrayList(arr1);
            Console.WriteLine(list1.Contains(5));
            
        }

结果是:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值