C# 集合类自己经常用到: 数组(Array)、动态数组(ArrayList)、列表(List)、哈希表(Hashtable)、字典(Dictionary),对于经常使用的这些数据结构,做一个总结,便于以后备忘使用。

1 所在命名空间

using System.Collections.Generic;

using System.Collections;

2 ArrayList

ArrayList的长度可动态变化,每个元素都是Object类型,主要运用 数据初始化,增查改删,复制,排序,倒序。

2.1 初始化

//三种不同的初始化方法,重载方法
//创建不同副本,zd10-01

//空的arraylist,ArrayList()

ArrayList arr1 = new ArrayList();

//创建容量为5,ArrayList(int capacity)
ArrayList arr2 = new ArrayList(5);

//5个元素 ,ArrayList(ICollection c)

int[] ary = { 0,1,2,3,4};
ArrayList arr3 = new ArrayList(ary);

2.2 遍历

private void NavagateArrayList(ArrayList arrlst)

{

foreach(object obj in arrlst)

{

MessageBox.Show(obj.ToString());

}

}

2.3增查改删

//zd10-01

常用属性

count,Item,IsFixedSize,IsReadOnly

方法

增:

Add,AddRange,SetRange,InsertRange;

//例

ArrayList arr1 = new ArrayList();

//从0开始

arr1.Add("Head");

int[] ar={1,2,3};

arr1.AddRange(ar);

arr1.Add("Tail");

//在索引1的位置插入”index1“

arr1.Insert(1,”index1“);

string[] strary={"index2","index3"};

//插入数组

arr1.InsertRange(2,strary);

//遍历

NavagateArrayList(arr1);

删:

Clear,Remove,RemoveAt,RemoveRange

//删除最后一个元素,Tail

arr1.Remove("Tail");

arr1.RemoveAt(1);

//arr1.Clear();

搜索:

IndexOf,LastIndexOf,BinarySearch

//返回指定元素在数组中第一次出现的索引

int index =arr3.IndexOf(3);

int lindex =arr3.LastIndexOf(3);

排序:

Sort,Reverse

arr1.Sort();

NavagateArrayList(arr1);

//倒序

arr1.Reverse();

NavagateArrayList(arr1);

创建副本:

CopyTo,ToArray,GetRange,ReadOnly,FixedSize

其他:

TrimToSize,ToString.....and so on

//请看懂再转载,防止百度上搜索的答案一模一样浪费生命

C# 集合类(一)动态数组ArrayList的更多相关文章

  1. 数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解

    数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解 对数组有不了解的可以先看看我的另一篇文章,那篇文章对数组有很多详细的解析,而本篇文章则着重讲动态数组,另一篇文章链接 ...

  2. [数据结构1.2-线性表] 动态数组ArrayList(.NET源码学习)

    [数据结构1.2-线性表] 动态数组ArrayList(.NET源码学习) 在C#中,存在常见的九种集合类型:动态数组ArrayList.列表List.排序列表SortedList.哈希表HashTa ...

  3. C#集合类:动态数组、队列、栈、哈希表、字典(转)

    1.动态数组:ArrayList 主要方法:Add.AddRange.RemoveAt.Remove 2.队列:Queue 主要方法:Enqueue入队列.Dequeue出队列.Peek返回Queue ...

  4. C#集合类:动态数组、队列、栈、哈希表、字典

    1.动态数组:ArrayList 主要方法:Add.AddRange.RemoveAt.Remove 2.队列:Queue 主要方法:Enqueue入队列.Dequeue出队列.Peek返回Queue ...

  5. C#动态数组ArrayList和List<T>的比较

    C#中一维动态数组(即列表)分ArrayList和List<T>两种,其容量可随着我们的需要自动进行扩充 一.ArrayList类(少用) ArrayList位于System.Collec ...

  6. 关于C#中的动态数组ArrayList

    在C#中,如果需要数组的长度和元素的个数随着程序的运行不断改变,就可以使用ArrayList类,该类是一个可以动态增减成员的数组. 一.ArrayList类与Array类的区别 ArrayList类实 ...

  7. C#动态数组ArrayList

    在C#中,如果需要数组的长度和元素的个数随着程序的运行不断改变,就可以使用ArrayList类,该类是一个可以动态增减成员的数组. 一.ArrayList类的常用属性和方法 1. ArrayList类 ...

  8. 动态数组 - ArrayList

    前言 如果数组的大小要随时间变化,那么数组操作起来就比较麻烦. 在C++中,这种情况要用到动态向量Vector. 而Java中,提供了一种叫做ArrayList的泛型数组结构类型,提供相似的作用. 其 ...

  9. 动态数组ArrayList的使用

    1.定义类 package com.realhope.rmeal.bean; /** * * @author Wucy * 菜谱类 */ public class Menu{ private Inte ...

随机推荐

  1. P 4315 月下毛景树

    题目描述 毛毛虫经过及时的变形,最终逃过的一劫,离开了菜妈的菜园. 毛毛虫经过千山万水,历尽千辛万苦,最后来到了小小的绍兴一中的校园里. 爬啊爬~爬啊爬毛毛虫爬到了一颗小小的"毛景树&quo ...

  2. 通用redis

    import lombok.extern.slf4j.Slf4j;import org.apache.poi.ss.formula.functions.T;import org.rcisoft.cor ...

  3. 持续集成工具之Jenkins使用配置

    在上一篇博客中,我们主要介绍了DevOps理念以及java环境和jenkins的安装,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13805666.html: ...

  4. mysql DISTINCT选取多个字段,获取distinct后的行信息

    背景:      a表保存关联关系,通过ACode 获取该关系中的所有 BCode, 并获取所有Bcode-max(Bvrsn)的信息  Bnm 表a 表b          循序渐进:        ...

  5. 浅谈Python常用英文单词

    一.交互式环境与print输出 1.print:打印/输出2.coding:编码3.syntax:语法4.error:错误5.invalid:无效6.identifier:名称/标识符7.charac ...

  6. 多测师讲解IDE工具python_001.2pycham_安装

    PyCharm安装使用教程 Pycharm 是目前 Python 语言最好用的集成开发工具. 下载 Pycharm 载时有两种版本选择 Professional(专业版,收费)和Community(社 ...

  7. Linux最常用的命令大全

    Linux最常用的命令大全 按功能索引 目录处理命令 ls mkdir pwd cd rmdir cp mv rm 文件处理命令 touch cat tac more less head tail l ...

  8. pytest文档51-内置fixture之cache使用

    前言 pytest 运行完用例之后会生成一个 .pytest_cache 的缓存文件夹,用于记录用例的ids和上一次失败的用例. 方便我们在运行用例的时候加上--lf 和 --ff 参数,快速运行上一 ...

  9. mac安装go环境

    下载pkg文件 https://golang.google.cn/dl/   sudo vim /etc/profile export GOROOT=/usr/local/go export GOPA ...

  10. form单提交后按钮变成失效变灰

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...