C#简单笔记08:集合,ArrayList,List,字典,栈和队列

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

集合(非泛型,泛型)

ArrayList(非泛型集合,弱类型,较不推荐)

以下是ArrayList示例:

using System;
using System.Collections;//使用ArrayList引用相应空间
namespace ConsoleApp021{
    class Program {
        //循环枚举输出ArrayList数组元素成员
        public static void Log(ArrayList arr) {
            string str = "当前数组有(" + arr.Count + ")个元素:";
            for (int i = 0; i < arr.Count; i++) {
                str += "[" + i + "]:";
                str += arr[i] + "; ";

            }
            Console.WriteLine(str);
        }

        static void Main(string[] args)
        {
            //创建对象
            ArrayList arr = new ArrayList();
            Log(arr);//查看整个数组元素

            //添加元素:使用Add方法在队尾添加元素,
            arr.Add(15);            //下标0
            arr.Add(11.11f);        //下标1
            arr.Add("ArrayList示例");//下标2
            arr.Add("老王");         //下标3
            //通过元素坐标访问元素
            //Console.WriteLine("arr[0] = " + arr[0]);
            //Console.WriteLine("arr[1] = " + arr[1]);
            //Console.WriteLine("arr[2] = " + arr[2]);
            ////Console.WriteLine("arr[10] = " + arr[10]);出错!引用不存在元素!
            Log(arr);//查看整个数组元素

            //Count方法获取元素数量
            int count = arr.Count;

            //插入元素:使用insert()方法在指定下标处插入元素
            //!注意:不可插入比"当前最大下标"大的下标(超出范围)
            arr.Insert(1,"老李");
            Log(arr);//查看整个数组元素

            //删除元素:使用remove方法删除指定元素
            arr.Remove("老王");
            Log(arr);//查看整个数组元素

            //删除指定位置(下标)的元素:使用removeat方法删除指定位置的元素
            arr.RemoveAt(0);
            Log(arr);//查看整个数组元素

            //确认元素是否存在:contains方法确认指定元素是否在数组中存在
            bool b = arr.Contains("老李");
            if (b) {
                Console.WriteLine("数组中存在[老李]");
            }
            else {
                Console.WriteLine("数组中不存在[老李]"); }

            //删除所有元素:clear方法
            arr.Clear();
            Log(arr);//查看整个数组元素

            Console.ReadKey();
        }
    }
}

List(泛型集合,强类型,推荐)

using System;
using System.Collections;//ArrayList需要引用的命名空间
using System.Collections.Generic;//List泛型集合需要引用的命名空间
namespace ConsoleApp022{
    class Program    {
        static void Main(string[] args) {
            //声明List对象
            List<string> arr = new List<string>();
            //注意:ArrayList(弱类型)可以添加各种类型元素,List(强类型)只能添加指定类型元素
            //添加元素:使用add()方法
            arr.Add("你好");
            arr.Add("世界");
            arr.Add("哈哈哈");            
            //arr.Add(250);//错误:List集合arr已被声明为string类型,故不能添加其他类型元素

            //插入元素:使用insert()方法在指定位置插入元素
            arr.Insert(1, "君子好逑");

            //删除元素:使用Remove方法删除一个(已存在)指定元素
            arr.Remove("哈哈哈");
            //删除元素:使用RemoveAt方法删除指定下标位置的元素
            arr.RemoveAt(0);//删除第0个下标的元素
            
            //元素个数:使用Count属性获取List的元素个数.
            Console.WriteLine("arr共有" + arr.Count + "个元素.");
            
            //是否包含元素:使用Contains方法确定List中是否包含指定元素
            bool b = arr.Contains("世界");//确定arr中是否包含"世界"

            arr[0] = "随便测试";//给指定下标元素赋值
            string str = arr[1];//获取指定元素值

            //清空所有元素:使用Clear方法清空List中所有元素
            arr.Clear();

            //ArrayList和List的区别
            ArrayList a = new ArrayList();
            //ArrayList弱类型,对元素类型没有限制;List强类型,元素类型必须相同
            a.Add("份文件啊发了");
            a.Add(123f);
            a.Add(250);

            //因为ArrayList对元素类型不限制,系统会把元素当成object类型对象存储
            //string s = a[0];//错误的元素取值方法:ArrayList的元素类型是object
            string s = (string)a[0];//正确:必须将object类型强制转换为string

            Console.Read();
        }
    }
}

字典(泛型)

using System;
using System.Collections.Generic;//泛型集合命名空间
namespace ConsoleApp023 {
    class Program {
        static void Main(string[] args) {
            //创建字典对象key为string类型,value为int类型
            Dictionary<string,int> dic = new Dictionary<string, int>();
            //add方法添加元素 - 键值对
            dic.Add("老王",53);
            dic.Add("小李", 19);
            dic.Add("老猪", 300);
            
            int age = dic["老王"];//通过key获取value
            
            int count = dic.Count;//count属性获取元素个数

            //ContainsKey方法检查字典是否包含指定key键
            bool b = dic.ContainsKey("老猪");//字典中是否包含键为"老猪"的元素
            //ContainsValue方法检查字典是否包含指定value值
            bool c = dic.ContainsValue(300);//字典中是否有值等于300的元素

            //尝试获取指定key对应的value
            int s;
            bool x = dic.TryGetValue("老王", out s);
            //如果字典中有"老王"key键,则获取对应的value值到s, x=true
            //如果字典中没有"老王"key键,那么s=null, x=false

            //remove方法删除元素 - 键值对
            dic.Remove("老王");//删除元素"老王"键值对
            //clear方法清空字典-即所有元素
            dic.Clear();
        }
    }
}

栈和队列(泛型)

using System;
using System.Collections.Generic;//引用泛型所需命名空间
using System.Linq;
using System.Text;

namespace ConsoleApp024{
    class Program {
        static void Main(string[] args) {
            //创建栈(类似投井,先进后出-后进先出)
            Stack<string> s = new Stack<string>();
            //常用的一些方法和属性类似其他集合
            int count = s.Count;
            s.Clear();
            bool b = s.Contains("小王");

            //Push:栈中添加元素
            //stack独有的:push-入栈(类似跳井)
            s.Push("小王");
            s.Push("小张");
            s.Push("小明");

            //stack独有的:pop-(弹)出栈(类似从井里1个个救人)
            //获取元素,类似投井后救人,先进后出-后进先出
            Console.WriteLine(s.Pop());//小明
            Console.WriteLine(s.Pop());//小张
            Console.WriteLine(s.Pop());//小王

            //创建队列-类似排队,先进先出,后进后出
            Queue<string> q = new Queue<string>();
            //队列常用方法和属性,类似其他集合
            q.Clear();
            int c = q.Count();
            bool bb = q.Contains("老王");

            //queue独有:向队列中插入元素,类似排队
            q.Enqueue("老张");
            q.Enqueue("老王");
            q.Enqueue("老李");

            //queue独有:获取元素,类似排队后出队:按顺序先进先出
            Console.WriteLine(q.Dequeue());//老张
            Console.WriteLine(q.Dequeue());//老王
            Console.WriteLine(q.Dequeue());//老李

            Console.ReadKey();

        }
    }
}

 

C#之数据结构:Array(数组),ArrayList(动态数组),List(泛型列表),Queue(队列),Stack(),LinkedList(双向链表),二叉树(binary tree)等等 数据结构:Array(数组),ArrayList(动态数组),List(泛型列表),LinkedList(双向链表),Queue(队列),Stack(),Dictionary(字典),Hashtable(哈希表)、二叉树好记性不如烂笔头! 阅读详情

相关推荐

C# 集合( StackQueue 、Dictionary、 ArrayListList<T> )

对于集合的分析 1.集合的概念 2.Stack Queue 3.Dictionary   4.ArrayListList 一. 集合的概念 1.为什么要有集合 对于很多应用程序,需要创建管理相关对象组。有两种方式可以将对象分组 创建对象数组,如下例: object[] obj = new object[4] { 1, 2.23, "name", 'a'

leonardo_Davinci的博客 2902

c#集合详解-Dictionary、List、Queue、Stack等

c#队列字典集合的一般操作特性

qq_52905520的博客 2298

保姆级教程:用Wokwi玩转ESP32 MicroPython仿真(含库文件配置指南)

本教程详细介绍了如何使用Wokwi平台进行ESP32 MicroPython仿真开发,包括库文件配置、传感器数据模拟REPL调试技巧。通过Wokwi的仿真调试系统,开发者可以在浏览器中快速验证代码逻辑,提高开发效率,特别适合物联网项目的快速迭代。

weixin_29195615的博客 388

C#几种集合列表List,链表LinkedList,集HashSet,队列Queue,Stack,字典Dictionary的区别与说明

C#几种集合列表List,链表LinkedList,集HashSet,队列Queue,Stack,字典Dictionary的区别与说明

ylq1045的专栏 3291

C#数据结构学习笔记——队列

1.队列 先进先出是队列。只能再队头删除元素(出队),在队尾添加元素(入队),应用例如:排队。队列的具体操作: 入队(队尾添加元素):void Enqueue(e) 出队(队头删除元素):E Dequeue() 查看队首元素:E Peek() 队列的元素数量:int Count { get; } 队列是否空:bool IsEmpty { get; } 队列接口设计: interface IQueue<E> { int Count { get; }

a984500801的博客 6123

使用C#List实现一个队列数据结构类

【代码】使用C#List实现一个队列数据结构类。

weixin_46355280的博客 355

C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、SortedList类)

1.ArrayListArrayList类主要用于对一个数组中的元素进行各种处理。在ArrayList中主要使用Add、Remove、RemoveAt、Insert四个方法对进行操作。Add方法用于将对象添加到 ArrayList 的结尾处;Remove方法用于从 ArrayList 中移除特定对象的第一个匹配项;RemoveAt方法用于移除 ArrayList 的指定索引处的元素;I

yslfstar的专栏 1145

第一阶段C#基础-10:集合Arraylist,list,Dictionary等)

(1)ArrayList实现了IList,ICollection,Ienumerable,ICloneable接口,IListList列表,主要负责集合的插入,添加,删除,取索引,判断是否包含某个项等操作。ICollection:Collection集合。主要负责集合中的项的个数,集合的复制,拷贝等。IEnumerable:Enumerable可枚举的;可数的,可枚举的。主要实现迭代器,实现此接口类都可以被循环,被遍历,被迭代,被枚举。

m0_65011747的博客 1015

【Unity 3D】C#中数组、集合队列、哈希表、字典的讲解(附测试代码)

【Unity 3D】C#中数组、集合队列、哈希表、字典的讲解(附测试代码)

showswoller的博客 2068

C#中的集合--ArrayListList,Stack,Queue,Dictionary,Hashtable

C#集合(Collection)类是专门用于数据存储检索的类。这些类提供了对(stack)、队列(queue)、列表(list哈希表(hash table)的支持。大多数集合类实现了相同的接口 一般在我们需要用到的时候在最前面using System.Collections –特例是字典Dirtionarty<> 链表List<>他们的引用空间是using System.Collections.Generic 先说ArrayListList把(链表) 1.链表数组的特

weixin_43511871的博客 591

C#中的常用集合

本文主要介绍的是C#基础语法中的集合这一块,包括List,Queue等等。

gaoqiandr的博客 1174

c#List、Dictionary、ArrayList、Hashtable数组的区别是什么?

<br /> <br />C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue <br />1.数组是固定大小的,不能伸缩。虽然System.Array.Resize这个泛型方法可以重置数组大小, <br />但是该方法是重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就废弃!而集合却是可变长的 <br />2.数组要声明元素的类型,集合类的元素类型却是object. <br />3.数组可读可写不能声明只读数组。集合类可

朩冰雲的专栏 1万+

C#进阶一】C#中的数组(Array)、集合(ArrayList,Queue,Stack, HashList)、List<T>、字典(Dictionary<K,T>)双向链表LinkedList

一文读懂C#中的数组(Array)、集合(ArrayList,LinkedList,Queue,Stack, HashList)、泛型集合List< T >、字典(Dictionary)双向链表(LinkedList< T>)

QHCV的博客 2160

C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue

C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue     1.数组是固定大小的,不能伸缩。虽然System.Array.Resize这个泛型方法可以重置数组大小,       但是该方法是重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就废弃!而集合却是可变长的    2.数组要声明元素的类型,集合类的

铭轩同学 953

C#泛型集合非泛型集合的异同点及声明方式

C#泛型集合非泛型集合的异同点及声明方式

JYWWQw的博客 2301

C#中的集合、事件委托

集合1 定义:集合就是一种存放多个数据的容器类型,比如之前学过的数组Array(完整的类型是System.Array)。 预定义的常用集合: 动态数组:ArrayList;列表:List字典:Dictionary;队列:Queue;:Stack。 动态数组ArrayList: 初始化,可以不指定大小; 获取长度,使用Count属性; 添加Add; 删除Remove,RemoveAt; 访问...

qq_37692087的博客 676

c# 集合

集合的概念: 集合提供一种灵活的处理方法。与数组不同,处理的对象组可根据程序更改的需要动态地增长收缩。 对于某些集合,您可以为放入该集合的任何对象分配一个“键”,以便使用该键快速检索对象。 集合(Collection)类是专门用于数据存储检索的类。这些类提供了对(stack)、队列(queue)、列表(list哈希表(hash table)的支持。大多数集合类实现了相同的接口。 ...

qq_42322611的博客 2441

【Unity3D数据集合】(二)列表集合ListListArray学习

推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在日常开发中,常常会用到数据集合,那么数据集合是什么呢,数据集合也没有想象中那么复杂。 数据集合就是专门用来存储数据、检索数据,以及对数据一系列操作的类。 这些类有:ArrayList数组、List列表、Queue队列、Dictionary字典、Hashtable哈希表、.

CSDN博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 1万+

C#简单理解-数组集合

Array(完整System.Array)是最简单集合 预定义常用集合: 动态数组 ArrayList 列表 List 字典 Dictionary 队列 Queue Stack 值类型存储在中,引用类型存储在堆中

我不想说 978

CSharp中的集合字典:不同数据量的内存占用情况

1. CSharp中的集合         集合(Collection)类是专门用于数据存储检索的类。这些类提供了对(stack)、队列(queue)、列表(list哈希表(hash table)的支持。大多数集合类实现了相同的接口。         集合(Collection)类服务于不同的目的,如为元素动态分配内存,基于索引访问列表项等等

XiaoCai 9799
上一篇: PHP笔记目录
下一篇: C#简单笔记09:委托,事件
申佳明哥哥
博客等级 码龄10年 39粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值