当前位置: 首页 > 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:…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...