C#中的集合类及其使用

集合类是用于数据存储和检索的专门类。这些类支持栈、队列、列表和哈希表等数据结构。大多数集合类实现了相同的接口,提供了一种灵活的方式来处理数据。

集合类的作用

集合类的主要作用包括:

  • 动态内存分配:允许在运行时根据需要增加或减少元素。
  • 按索引访问:通过索引访问列表中的项目。
  • 提供多种数据结构:如数组、哈希表、栈和队列。

常见的集合类及其用法

以下是 System.Collections 命名空间中常用的集合类及其描述和用法:

1. ArrayList

ArrayList 表示一个可以按索引单独访问的对象的有序集合。

cs 复制代码
using System;
using System.Collections;

class Program
{
    static void Main()
    {
        ArrayList arrayList = new ArrayList();
        arrayList.Add("第一项");
        arrayList.Add("第二项");
        arrayList.Add("第三项");
        
        Console.WriteLine("ArrayList中的元素:");
        foreach (var item in arrayList)
        {
            Console.WriteLine(item);
        }
    }
}
2. Hashtable

Hashtable 使用键来访问集合中的元素。

cs 复制代码
using System;
using System.Collections;

class Program
{
    static void Main()
    {
        Hashtable hashtable = new Hashtable();
        hashtable["A"] = 1;
        hashtable["B"] = 2;
        hashtable["C"] = 3;
        
        Console.WriteLine("Hashtable中的元素:");
        foreach (DictionaryEntry entry in hashtable)
        {
            Console.WriteLine($"{entry.Key}: {entry.Value}");
        }
    }
}
3. SortedList

SortedList 使用键和索引来访问列表中的项目。

cs 复制代码
using System;
using System.Collections;

class Program
{
    static void Main()
    {
        SortedList sortedList = new SortedList();
        sortedList.Add("B", 2);
        sortedList.Add("A", 1);
        sortedList.Add("C", 3);
        
        Console.WriteLine("SortedList中的元素:");
        foreach (DictionaryEntry entry in sortedList)
        {
            Console.WriteLine($"{entry.Key}: {entry.Value}");
        }
    }
}
4. Stack

Stack 表示后进先出(LIFO)的对象集合。

cs 复制代码
using System;
using System.Collections;

class Program
{
    static void Main()
    {
        Stack stack = new Stack();
        stack.Push("第一项");
        stack.Push("第二项");
        stack.Push("第三项");
        
        Console.WriteLine("Stack中的元素:");
        while (stack.Count > 0)
        {
            Console.WriteLine(stack.Pop());
        }
    }
}
5. Queue

Queue 表示先进先出(FIFO)的对象集合。

cs 复制代码
using System;
using System.Collections;

class Program
{
    static void Main()
    {
        Queue queue = new Queue();
        queue.Enqueue("第一项");
        queue.Enqueue("第二项");
        queue.Enqueue("第三项");
        
        Console.WriteLine("Queue中的元素:");
        while (queue.Count > 0)
        {
            Console.WriteLine(queue.Dequeue());
        }
    }
}
6. BitArray

BitArray 表示使用0和1的值的二进制表示数组。

cs 复制代码
using System;
using System.Collections;

class Program
{
    static void Main()
    {
        BitArray bitArray = new BitArray(5);
        bitArray[0] = true;  // 设置第一个位置为1
        bitArray[1] = false; // 设置第二个位置为0
        bitArray[2] = true;  // 设置第三个位置为1
        
        Console.WriteLine("BitArray中的元素:");
        foreach (bool bit in bitArray)
        {
            Console.WriteLine(bit ? 1 : 0);
        }
    }
}

C#的集合类提供了一种强大的方式来管理和操作数据。这些类各具特色,可以根据不同的需求选择合适的集合类来实现高效的数据存储和访问。无论是使用 ArrayList 进行动态数组操作,还是使用 HashtableSortedList 进行键值对存储,C#的集合类都能满足开发者的多种需求。

相关推荐
浅念-2 分钟前
C++入门(2)
开发语言·c++·经验分享·笔记·学习
WeiXiao_Hyy2 分钟前
成为 Top 1% 的工程师
java·开发语言·javascript·经验分享·后端
User_芊芊君子8 分钟前
CANN010:PyASC Python编程接口—简化AI算子开发的Python框架
开发语言·人工智能·python
kylezhao201912 分钟前
C#序列化与反序列化详细讲解与应用
c#
JQLvopkk15 分钟前
C# 实践AI :Visual Studio + VSCode 组合方案
人工智能·c#·visual studio
Max_uuc19 分钟前
【C++ 硬核】打破嵌入式 STL 禁忌:利用 std::pmr 在“栈”上运行 std::vector
开发语言·jvm·c++
故事不长丨19 分钟前
C#线程同步:lock、Monitor、Mutex原理+用法+实战全解析
开发语言·算法·c#
牵牛老人22 分钟前
【Qt 开发后台服务避坑指南:从库存管理系统开发出现的问题来看后台开发常见问题与解决方案】
开发语言·qt·系统架构
kingwebo'sZone25 分钟前
C#使用Aspose.Words把 word转成图片
前端·c#·word
froginwe1130 分钟前
Python3与MySQL的连接:使用mysql-connector
开发语言