C#入门教程之集合ArrayList用法详解

C#入门教程之集合ArrayList用法详解

什么是ArrayList?

ArrayList是C#中的一种集合,其可存储任意类型的元素,并且可以动态增加或删除元素。与数组相比,ArrayList的大小可以动态变化,使其更加灵活。

ArrayList的基本用法

创建和初始化ArrayList

使用ArrayList时,需要先实例化一个ArrayList对象,然后通过Add方法来添加元素。下面的示例展示了如何创建和初始化ArrayList对象:

ArrayList list = new ArrayList();
list.Add("apple");
list.Add("banana");
list.Add("orange");

遍历ArrayList

遍历ArrayList时,可以使用foreach循环或for循环。下面的示例展示了两种遍历方法:

//使用foreach循环遍历ArrayList
foreach (var item in list)
{
    Console.WriteLine(item);
}

//使用for循环遍历ArrayList
for (int i = 0; i < list.Count; i++)
{
    Console.WriteLine(list[i]);
}

查询和修改ArrayList

要查询ArrayList中的元素,可以使用Indexof方法和Contains方法,它们分别用于查找元素所在的索引和判断元素是否存在。要修改ArrayList中的元素,可以直接使用索引来修改元素的值。下面的示例展示了如何查询和修改ArrayList:

//查询元素
int index = list.IndexOf("banana");
bool contains = list.Contains("orange");

//修改元素
list[0] = "cherry";

删除元素

删除ArrayList中的元素有多种方法,例如Remove方法和RemoveAt方法。Remove方法用于删除指定元素,RemoveAt方法用于删除指定索引位置的元素。下面的示例展示了如何删除ArrayList中的元素:

//删除指定元素
list.Remove("banana");

//删除指定索引位置的元素
list.RemoveAt(0);

示例说明

示例1

下面的示例展示了如何使用ArrayList来存储和遍历学生的考试成绩:

ArrayList scoreList = new ArrayList();
scoreList.Add(85);
scoreList.Add(76.5);
scoreList.Add(90);
scoreList.Add(69.5);

double sum = 0;
foreach (var score in scoreList)
{
    sum += Convert.ToDouble(score);
}
double avg = sum / scoreList.Count;
Console.WriteLine("平均分:" + avg);

示例2

下面的示例展示了如何使用ArrayList来管理购物车中的商品:

ArrayList cartList = new ArrayList();
cartList.Add("T-Shirt");
cartList.Add("Shoes");
cartList.Add("Jeans");

//遍历购物车中的商品
foreach (var item in cartList)
{
    Console.WriteLine(item);
}

//从购物车中删除指定商品
cartList.Remove("Shoes");

总结

ArrayList是C#中一种常用的集合,拥有动态增删元素、存储任意类型元素等特点,非常适合存储数据的需求。熟悉ArrayList的基本用法,对于提高C#程序员的编程水平非常有帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#入门教程之集合ArrayList用法详解 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • 深入理解C#之枚举

    深入理解C#之枚举 枚举(Enum)是C#中的一种特殊的数据类型,用于将一些常量值(enumerator)定义为一组有限的可能性,并赋予特定的名称。一般用于管理状态、类型等场景。 枚举的定义 枚举以 enum 关键字开始定义,后面跟着枚举名称和枚举名称的具体值。下面是一个简单的定义: enum WeekDays { Monday, Tuesday, Wedn…

    C# 2023年5月31日
    00
  • Solaris 10 OS 快速安裝配置 Apache + Mysql + php

    Solaris 10 OS 快速安装配置 Apache + Mysql + PHP攻略 简介 本文介绍如何在 Solaris 10 操作系统上快速地安装配置 Apache、MySQL 和 PHP 环境。 步骤 1. 安装软件包管理器 # pkgadd -d http://get.opencsw.org/now 2. 安装 Apache # pkgutil -…

    C# 2023年5月31日
    00
  • C#实现根据实体类自动创建数据库表

    下面是 “C#实现根据实体类自动创建数据库表” 的完整攻略: 1. 实现方式 C#语言使用ORM框架可以方便地实现这个功能,其中EF (Entity Framework) 是比较常用的ORM框架之一,其核心功能是将数据库表映射到实体类上,从而实现面向对象的操作。 具体实现方式如下: 首先,需要定义一个实体类,用于描述需要存储到数据库中的实体属性。 示例: p…

    C# 2023年6月1日
    00
  • Win11正式版 22000.675 更新补丁KB5013943推送(附更新修复内容汇总)

    Win11正式版22000.675更新补丁KB5013943推送 Win11正式版22000.675更新补丁KB5013943已经推送,本文将介绍该更新补丁的修复内容汇总以及如何安装该更新补丁。 更新修复内容汇总 Win11正式版22000.675更新补丁KB5013943主要修复了以下问题: 修复了在某些设备上无法启动Windows Hello的问题。 修…

    C# 2023年5月15日
    00
  • C# Directory.GetDirectories(string path):获取指定目录下的所有子目录路径

    Directory.GetDirectories(string path)方法是C#中用于获取指定路径下所有子目录的静态方法。 具体使用方法如下: 1.导入命名空间 在使用该方法之前,需要先导入System.IO命名空间,以便使用其中提供的Directory类。 using System.IO; 2.方法原型 public static string[] G…

    C# 2023年4月19日
    00
  • asp.net子窗体与父窗体交互实战分享

    ASP.NET 子窗体与父窗体交互实战分享 本文主要介绍ASP.NET中子窗体与父窗体交互的实现方法。涉及到了IFrame嵌套、控件之间的通信等具体技术细节。 IFrame父子窗体嵌套实现方式 父子窗体嵌套方式主要有两种,一种是利用IFrame实现,另一种则是采用模态窗口的方式。这里介绍第一种方式。 在ASP.NET中,可以在主页面中嵌入一个IFrame页面…

    C# 2023年6月3日
    00
  • 12306动态验证码启发之ASP.NET实现动态GIF验证码(附源码)

    让我来详细解释一下“12306动态验证码启发之ASP.NET实现动态GIF验证码(附源码)”这篇文章的完整攻略。 1. 研究动态验证码的实现原理 首先,我们需要对动态验证码的实现原理进行研究。动态验证码是指每次刷新页面都会显示不同的验证码图片,这种验证码的安全性更高,因为攻击者无法通过简单地截取验证码的图片进行破解。而实现动态验证码的关键就是生成动态的图像。…

    C# 2023年6月3日
    00
  • 详解LINQ入门(上篇)

    详解LINQ入门(上篇) LINQ简介 LINQ全称是“Language Integrated Query”,是.NET语言的一项重要特性,提供了一种方便的方式来查询数据,不仅支持关系型数据库,还可以用于XML文件、对象集合等数据源。它的出现简化了我们的代码逻辑,提高了开发效率。 面向对象和面向过程的编程风格 在介绍如何使用LINQ之前,我们先来简单了解一下…

    C# 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部