c#进阶 ArrayList

using System;
using System.Collections;
namespace Lesson1_ArrayList
{
    class Test
    {

    }
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Lesson1_ArrayList");
            #region 练习题回顾
            /*
             * C#核心中,索引器的练习题
             * 自定义一个整型数组类,该类中有一个整型数组变量
             * 为它封装增删改查的方法
             */
            #endregion
            #region 知识点一 ArrayList的本质
            /*
             * 一个存储任意类型的容器
             * ArrayList是一个C#为我们封装好的类
             * 它的本质是一个Object类型的数组
             * ArrayList类帮助我们实现了很多的方法
             * 比如数组的增删改查
             */
            #endregion
            #region 知识点二 声明
            //需要引用命名空间  using System.Collections;
            ArrayList array = new ArrayList();
            #endregion
            #region 知识点三 增删改查
            #region 增
            //将对象添加到 ArrayList 的结尾处。
            //public virtual int Add (object? value);
            array.Add(1);
            array.Add("123");
            array.Add(true);
            array.Add(new object());
            array.Add(new Test());
            array.Add(true);
            
            ArrayList array2 = new ArrayList();
            array2.Add(123);
            //将 ICollection 的元素添加到 ArrayList 的末尾。
            //public virtual void AddRange (System.Collections.ICollection c);
            array.AddRange(array2);
            #endregion
            #region 删
            //从 ArrayList 中移除特定对象的第一个匹配项。
            //public virtual void Remove (object? obj);
            array.Remove(1);
            //移除 ArrayList 的指定索引处的元素。
            //public virtual void RemoveAt (int index);
            array.RemoveAt(2);
            //Clear()   从 ArrayList 中移除所有元素。
            //public virtual void Clear ();
            //array.Clear();
            #endregion
            #region 改
            array[0] = "999";
            Console.WriteLine(array[0]);
            //将元素插入 ArrayList 的指定索引处。
            //public virtual void Insert (int index, object? value);
            array.Insert(0, "Panzi");
            Console.WriteLine(array[0]);
            #endregion
            #region 查
            //得到指定位置的元素
            //成员属性 Item[Int32]  获取或设置指定索引处的元素。
            Console.WriteLine(array[0]);

            //确定某元素是否在 ArrayList 中。
            //public virtual bool Contains (object? item);
            if (array.Contains("123"))
            {
                Console.WriteLine("Exits \"123\" ");
            }

            //正向查找元素位置
            //找到返回值 为位置,找不到返回-1
            int index = array.IndexOf(true);
            Console.WriteLine(index);

            Console.WriteLine(array.IndexOf(false));//return -1
            #endregion
            #region 遍历
            //属性 获取 ArrayList 中实际包含的元素数。
            //public virtual int Count { get; }
            int len1 = array.Count;
            //属性 获取容量
            //public virtual int Capacity { get; set; }
            int capacity = array.Capacity;
            //迭代器遍历
            foreach(object item in array)
            {
                Console.Write(item);
            }
            #endregion
            #endregion
            #region 知识点四 装箱拆箱
            // ArrayList本质上是一个可以自动扩容的object数组,
            // 由于用万物之父来存储数据,自然存在装箱拆箱。
            // 当往其中进行值类型存储时就是在装箱,当将值类型对象取出来转换使用时,就存在拆箱。
            // 所以ArrayList尽量少用,之后我们会学习更好的数据容器。
            int i = 1;
            array[0] = i;//装箱
            i = (int)array[0];//拆箱
            #endregion
        }
    }
}

练习题

### 练习题

#### 1.简述ArrayList和数组的区别

1. ArrayList存储的是Object,Object可以存储任何类型;数组只能存储一种类型

2. ArrayList有各种方法,数组没有

3. ArrayList可以插入新数据,数组不可以

#### 2.创建一个背包管理类

使用ArrayList存储物品,实现购买物品,卖出物品,显示物品的功能,购买与卖出物品会导致金钱变化

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值