当前位置: 首页 > news >正文

C#中ArrayList

ArrayList

1:位于System.Collections命名空间下,

2:ArrayList的容量可以根据需要自动扩充

3:只能是一维形式,数组可以是多维的

4:提供添加、删除、和插入某一范围元素的方法

三种构造方法

1) ArrayList list1 = new ArrayList();

2) int[] arr = new int[]{} ;

    ArrayList list2 = new ArrayList(arr) ;

3) ArrayList list3 = new ArrayList(10) ;

ArrayList的属性

1)Capacity ---获取或设置ArrayList可包含的元素

2)Count---获取实际包含的元素数

3)IsFixedSize ---获取一个值,指示是否具有固定大小

4)IsReadOnly--- 是否为只读。

ArrayList的方法

1)public virtual int Add(Object value) 

2)  public virtual void Insert(int index, Object value)

3) InsertRange(int Index, 一维数组的名称) 

4) public virtual void  Clear() --移除所有元素

5)public virtual void Remove(Object obhj) ---删除指定的元素

6)public virtual void RemoveAt(int Index) ---删除指定索引的元素

7)public virtual void RemoveRange(int index, int count)--删除指定的多个元素

8) foreach遍历ArrayList

9) IndexOf("A") ---返回A第一次出现的索引的位置,未找到的话返回-1;

10) IndexOf("A", 7) ---从索引7开始查找,未找到返回-1 ;

11) LastIndexOf("A") ---最后一次出现A的索引

12)LastIndexOf("A", 7)---下标0~7这段最后一次出现A的位置索引

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//ArrayList类位于System.Collections命名空间内
using System.Collections;//ArrayList是一种动态数组
//ArrayList的容量可以根据需要自动扩充
//ArrayList提供了添加,删除,和插入某一范围元素的方法
//Array List提供了将只读和固定大小包装返回集合的方法,数组不提供
//Array List只能是一维的形式,数组可以多维namespace ArrayListDemo01
{internal class Program{static void Main(string[] args){//ArrayList的构造函数//以默认(16位)大小来初始化内部的数组ArrayList list = new ArrayList();//用一个ICollection对象来构造,并把集合的元素添加到ArrayList中int[] arr1 = {10,9,8,7,6,5,4,3,2,1,0,11,12,13,14,15,16};ArrayList list1 = new ArrayList(arr1 );//用指定大小初始化内部数组ArrayList list2 = new ArrayList(20);Console.WriteLine("list中包含的元素数为:");//ArrayList的属性Capacity获取或设置ArrayList中可包含的的元素数Console.WriteLine(list.Capacity);list.Capacity = 10;Console.WriteLine("list可以包含的元素数:");Console.WriteLine(list.Capacity);//ArrayList中的属性Count是获取实际包含的元素数//如果ArrayList没有被初始化,那么count=0;Console.WriteLine("list中实际包含的元素数:");Console.WriteLine(list.Count);//ArrayList的初始化for(int i=0; i<list.Capacity; i++){list.Add(i);}Console.WriteLine("初始化后,list内包含的元素数:");Console.WriteLine(list.Count);//常用的属性及说明//IsFixedSizeConsole.WriteLine(list1.IsFixedSize);  //false//IsReadOnlyConsole.WriteLine(list1.IsReadOnly); //false //Item 获取或设置指定索引处的元素//和数组访问元素的方法一样Console.WriteLine(list1[5]);//ArrayList中的方法//public virtual int Add(Object value)//virtual方法在派生类中可以不重写,有方法体//抽象方法只有声明没有方法体,派生类中必须重写list1.Add(17);list1.Add(18);foreach(int i in list1){Console.Write(i + " ");}Console.WriteLine();//Insert(), 插入元素//public virtual void Insert(int index, Object value)list1.Insert(0, 100);foreach (int i in list1){Console.Write(i + " ");}Console.WriteLine();//ArrayList插入一个数组//InsertRange()int[] arr2 = {11,22,33,44,55,66,77 };list1.InsertRange(5,arr2);foreach (int i in list1){Console.Write(i + " ");}Console.WriteLine();//ArrayList删除一个元素int[] array = {11,2,3,44,55,55,55,66,77,88,99,100,101,102 };ArrayList al1 = new ArrayList(array);//Remove()从ArrayList中移除特定对象的第一个匹配项al1.Remove(55);//括号里面是ArrayList中的元素foreach (int i in al1){Console.Write(i + " ");}Console.WriteLine();//RemoveAt()移除指定索引的元素al1.RemoveAt(5);//括号里面是索引foreach (int i in al1){Console.Write(i + " ");}Console.WriteLine();//RemoveRange()//public virtual void RemoveRange(int index, int count)al1.RemoveRange(4, 3);foreach (int i in al1){Console.Write(i + " ");}Console.WriteLine();//clear()删除所有元素al1.Clear();Console.WriteLine(al1.Count);//获取实际包含的元素数Console.WriteLine(al1.Capacity);//获取或设置可包含的元素数Console.WriteLine();int[] al2 = new int[] { 11, 33, 2, 5, 10, 10, 10, 15, 63, 64, 54 };ArrayList arrList = new ArrayList(al2);//Indexof("A")返回第一次出现的索引位置,未找到返回-1Console.WriteLine("第一次出现10的索引位置为:{0} ", arrList.IndexOf(10));//IndexOf("A", 7)从索引7开始查找,未找到返回-1,包含7这个索引位置Console.WriteLine(arrList.IndexOf(10, 5));//=5;//LastIndexOf(10)从后面开始检索10第一次出现的索引Console.WriteLine(arrList.LastIndexOf(10));//=6从Console.WriteLine(arrList.LastIndexOf(10, 4));//=4//public virtual bool Contains(Object item)Console.WriteLine(arrList.Contains(20));//=falseConsole.WriteLine(arrList.Contains(10));//=true}}
}

相关文章:

C#中ArrayList

ArrayList 1:位于System.Collections命名空间下&#xff0c; 2&#xff1a;ArrayList的容量可以根据需要自动扩充 3&#xff1a;只能是一维形式&#xff0c;数组可以是多维的 4&#xff1a;提供添加、删除、和插入某一范围元素的方法 三种构造方法 1) ArrayList list1 n…...

【MySQL】批量插入数据造数-存储过程

日常工作中可能有针对需要对某个表进行造数&#xff0c;如何批量插入呢&#xff1f; 可以使用存储过程循环结构。下面是一个存储过程以插入100条&#xff0c;while语句后的<控制循环次数。 concat是一个拼接语句&#xff0c;拼接后是test_1-100&#xff0c;这种也适用于ID/…...

基于Java+SpringBoot+Vue+MySQL的高校物品捐赠管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于SpringBootVue的高校物品捐赠管理系统【附源码文档】、…...

UNION和UNION ALL的区别

一、区别 去重功能 UNION会去除结果集中的重复行。UNION ALL不会去除重复行&#xff0c;它只是简单地将多个结果集合并在一起。 性能 UNION ALL通常比UNION性能更好&#xff0c;因为UNION需要进行去重操作&#xff0c;这会增加额外的计算开销。 二、具体例子 假设有两个表tab…...

科研绘图系列:R语言PCoA图(PCoA plot)

文章目录 介绍PCoA图的作用:说明的问题:加载R包导入数据数据预处理画图参考介绍 PCoA(主坐标分析,Principal Coordinate Analysis)是一种多维数据的降维技术,它用于探索高维空间中样本之间的关系。PCoA通常用于生态学、遗传学和其他领域的数据分析,以揭示样本或个体之间…...

C++ 容器元素排序函数sort()

前言 std::sort()是C标准库提供了一个模板函数&#xff0c;这个函数用于对给定范围内的元素进行排序&#xff0c;默认情况下&#xff0c;它使用元素类型的 < 操作符来确定元素的顺序。如果元素类型不支持 < 操作符&#xff0c;或者你需要按照不同于 < 的顺序来排序&a…...

如何在极狐GitLab中添加 SSH Key?

本文分享如何生成 SSH Key 并添加到极狐GitLab 中&#xff0c;然后用 SSH Key 进行代码拉取。 极狐GitLab 是 GitLab 在中国的发行版&#xff0c;可以私有化部署&#xff0c;对中文的支持非常友好&#xff0c;是专为中国程序员和企业推出的企业级一体化 DevOps 平台&#xff0…...

Kafka-设计原理

ControllerLeader - PartitionRebalance消息发布机制HW与LEO日志分段 Controller Kafka核心总控制器Controller&#xff1a;在Kafka集群中会有一个或者多个broker&#xff0c;其中有一个broker会被选举为控制器&#xff08;Kafka Controller&#xff09;&#xff0c;它负责管理…...

51单片机的智能台灯设计【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块DS1302时间模块光敏传感器模块人体红外模块按键等模块构成。适用于智能台灯、自动调节灯光亮度等相似项目。 可实现基本功能: 1、LCD1602实时显示北京时间、环境光照强度、手动/自动模式、台灯亮度等信息&#xff1…...

【论文阅读】一种针对多核神经网络处理器的窃取攻击(2020)

摘要 攻击者可以通过侧信道信息(Side-channel)完成模型窃取攻击[17]. [17] Hua W Z, Zhang Z R, Suh G E. Reverse Engineering Convolutional Neural Networks through Side-channel Information Leaks[C]. 2018 55th ACM/ESDA/IEEE Design Automation Conference (DAC), 2018…...

基于VUE的校园二手物品交易管理系统的设计与实现 (含源码+sql+视频导入教程)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于VUE的校园二手物品交易管理系统8拥有两种角色 管理员&#xff1a;闲置物品管理、订单管理、用户管理 用户&#xff1a;登录注册、购物车、发布闲置物品、评论、发货、收货地址管理等…...

pytest 常用的辅助函数和工具函数

pytest 常用的辅助函数和工具函数示例 # File: my_module.pydef fetch_data():return process datadef process_data():data fetch_data()return data.upper() import logging import sys import pytest#01-------------------------------pytest.fixture,sample_data 在测试…...

记录Java秋招面经(网上找的)

1.Mysql的存储机制&#xff0c;怎么落到库里面的&#xff1f; 当数据插入 MySQL 时&#xff0c;首先数据修改会在内存中的 Buffer Pool 中完成&#xff0c;同时记录写入 Redo Log 以保证事务的持久性。事务提交时&#xff0c;日志会被刷入磁盘&#xff0c;确保数据可以恢复。修…...

记录k8s重启之后kubelet无法启动的问题

重启机器后&#xff0c;kubelet没有自启动&#xff0c;手动启动失败&#xff0c;检查日志反馈找不到bootstrap-kubelet.conf这个文件。 systemctl start kubelet journalctl -u kubelet 57481 run.go:74] "command failed" err"failed to run Kubelet: unable …...

IA——网络操作设备VRP简介

一&#xff0c;VRP简介 二&#xff0c;网络设备的管理 &#xff08;1&#xff09;console口&#xff1a; &#xff08;2&#xff09;talnet: &#xff08;3&#xff09;SSH: 安全的远程登陆 &#xff08;4&#xff09;通过WEB页面登录&#xff1a; 三&#xff0c;命令行常见…...

Java项目: 基于SpringBoot+mysql企业客户管理系统(含源码+数据库+答辩PPT+毕业论文)

一、项目简介 本项目是一套基于SpringBootmysql企业客户管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功…...

基于STM32设计的智能安防系统(微信小程序)(218)

文章目录 一、前言1.1 项目介绍【1】开发背景【2】项目实现的功能【3】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】整体构架【3】微信小程序开发思路1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】摘要【5】项目背景1.4 开发工具的选择【1】设备端…...

tomcat redis minio nginx windows开机自启

tomcat 开机自启 命令 service.bat install 控制台输入 service.bat install 再到服务中去查看有没有注册成功&#xff0c;minio,redis,nginx 也是一样在服务里查看注册成功没 redis 开机自启 命令 redis-server.exe --service-install redis.windows.conf --loglevel ve…...

Docker构建镜像教程

目录 1. Docker 环境准备2. 编写 Dockerfile3. 构建 Docker 镜像4. 运行容器5. 管理镜像和容器6. 镜像的导出和导入6.1 导出 Docker 镜像6.2 导入 Docker 镜像6.3 导出与导入的实际场景6.4 压缩导出的镜像 7. 推送镜像到 Docker Hub8. Dockerfile 指令详解1. FROM2. RUN3. WORK…...

扑捉一只耿鬼(HTML文件)

图例&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>耿鬼</title><style>body {background: #fff;font-family: Comfortaa, sans-serif;}* {box-sizing:…...

Linux Docker 安装与使用详细教程

一、Docker 概述 1.1 什么是 Docker&#xff1f; Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言开发并遵从 Apache2.0 协议开源。它可以让开发者将应用及其依赖打包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;实现虚…...

GPT-6 Spud倒计时×AI格局变局:2026年4月第一周全景扫描

上一篇 OpenClaw生态模型使用量全景&#xff1a;国产模型主导12.96万亿Token时代 下一篇 GPT-6 Spud深度解析&#xff1a;Symphony架构、双系统推理与OpenAI的AGI豪赌 摘要 2026年4月第一周&#xff08;3月31日至4月6日&#xff09;&#xff0c;AI行业迎来密集动态&#xff1a…...

Redis命令处理机制源码探究疗

一、项目背景与核心价值 1. 解决的核心痛点 Navicat的数据库连接密码并非明文存储&#xff0c;而是通过AES算法加密后写入.ncx格式的XML配置文件中。一旦用户忘记密码&#xff0c;常规方式只能重新配置连接&#xff0c;效率极低。本项目只作为学习研究使用&#xff0c;不做其他…...

Architect.dev性能优化终极技巧:提升Lambda函数响应速度的10个方法

Architect.dev性能优化终极技巧&#xff1a;提升Lambda函数响应速度的10个方法 【免费下载链接】architect The simplest, most powerful way to build a functional web app (fwa) 项目地址: https://gitcode.com/gh_mirrors/ar/architect Architect.dev是一个强大的无…...

Pixel Couplet Gen 惊艳像素春联作品集:AI与传统文化的创意碰撞

Pixel Couplet Gen 惊艳像素春联作品集&#xff1a;AI与传统文化的创意碰撞 1. 开篇&#xff1a;当像素艺术遇上传统春联 春节贴春联是中国人延续千年的传统习俗&#xff0c;而如今人工智能为这一古老文化注入了全新活力。Pixel Couplet Gen模型通过独特的像素艺术风格&#…...

重装 Office 必看:Win10/Win11 完美卸载 Office 2021(附视频)

不少人在使用 Office 2021 时会遇到卡顿、打不开、激活异常、功能报错等问题&#xff0c;常规修复与重置往往解决不了根源&#xff0c;最终只能选择卸载重装。但很多用户自己手动卸载时&#xff0c;经常遇到卸载不干净、注册表残留、再次安装冲突、激活失败等麻烦&#xff0c;折…...

【GitHub开源项目专栏】TensorRT-LLM深度解析:NVIDIA推理优化引擎架构

摘要 TensorRT-LLM是NVIDIA官方推出的开源LLM推理优化框架&#xff0c;通过AOT编译、算子融合、FP8/INT4量化等核心技术&#xff0c;在H100 GPU上实现了6000 tokens/s的吞吐量。本文深入剖析其核心架构、插件系统、量化技术栈以及与vLLM的生态对比&#xff0c;为企业级LLM部署提…...

设计方案:核心框架搭建与落地实操全指南

当前很多团队在输出设计方案时容易陷入两个极端&#xff1a;要么过度追求创意忽略落地可行性&#xff0c;导致方案最终停留在概念阶段无法产生实际价值&#xff1b;要么完全照搬模板缺乏针对性&#xff0c;无法匹配业务的个性化需求。尤其是电商、新媒体、企业服务等领域的设计…...

CosyVoice2-0.5B入门教程:3步搭建你的专属AI语音克隆系统

CosyVoice2-0.5B入门教程&#xff1a;3步搭建你的专属AI语音克隆系统 1. 快速了解CosyVoice2-0.5B CosyVoice2-0.5B是阿里开源的一款强大的语音克隆与合成系统&#xff0c;它能让你用短短几秒钟的语音样本&#xff0c;克隆出几乎一模一样的声音。想象一下&#xff0c;你可以让…...

YOLOv13 前瞻:YOLO 最新改进方向与模块预测(独家分析)

YOLOv13 真的来了吗&#xff1f;如果来了&#xff0c;它会是什么样子&#xff1f; 这是2026年以来&#xff0c;目标检测圈里最热的一个话题。根据 CSDN 社区 2026 年 1-3 月的讨论热度统计&#xff0c;“YOLOv13”相关关键词的搜索量在短短三个月内增长了近 5 倍&#xff0c;开…...