• C#入门(10):集合用法介绍


    在C#中,集合是一种特殊的数据类型,允许我们将多个元素组织在一起。这些元素可以是相同的类型或者可以是不同的类型。C#集合主要包括以下几种类型:

    1. List:它是一个有序的元素列表,用户可以添加、删除或查找元素。
    2. Dictionary:它是一个键值对的集合,用户可以使用键来获取对应的值。
    3. HashSet:它是一组不重复的元素,提供高效的集合操作,如并集、交集等。
    4. Queue:它是一种先进先出(FIFO)的集合,元素从集合的一端添加,并从另一端移除。
    5. Stack:它是一种后进先出(LIFO)的集合,元素从集合的顶部添加和移除。

    以下是各种集合的使用示例:

    List

    List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
    numbers.Add(6);  // 添加元素
    int firstNumber = numbers[0];  // 获取元素
    numbers.Remove(1);  // 删除元素
    
    • 1
    • 2
    • 3
    • 4

    Dictionary

    Dictionary<string, int> ages = new Dictionary<string, int>
    {
        {"Alice", 23},
        {"Bob", 27}
    };
    ages.Add("Charlie", 30);  // 添加元素
    int ageOfAlice = ages["Alice"];  // 获取元素
    ages.Remove("Alice");  // 删除元素
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    HashSet

    HashSet<int> uniqueNumbers = new HashSet<int> { 1, 2, 3, 4, 5 };
    uniqueNumbers.Add(6);  // 添加元素
    bool containsFour = uniqueNumbers.Contains(4);  // 检查元素是否存在
    uniqueNumbers.Remove(1);  // 删除元素
    
    • 1
    • 2
    • 3
    • 4

    Queue

    Queue<string> queue = new Queue<string>();
    queue.Enqueue("Alice");  // 添加元素
    queue.Enqueue("Bob");
    string firstInLine = queue.Dequeue();  // 移除并获取元素
    
    • 1
    • 2
    • 3
    • 4

    Stack

    Stack<string> stack = new Stack<string>();
    stack.Push("Alice");  // 添加元素
    stack.Push("Bob");
    string topOfStack = stack.Pop();  // 移除并获取元素
    
    • 1
    • 2
    • 3
    • 4

    以上示例应给出一个关于如何使用C#集合的基本概念。

    集合的遍历
    C#中所有的集合类都可以使用foreach循环进行遍历。以下是各种集合遍历的示例:

    List

    List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
    foreach (int number in numbers)
    {
        Console.WriteLine(number);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Dictionary

    Dictionary<string, int> ages = new Dictionary<string, int>
    {
        {"Alice", 23},
        {"Bob", 27}
    };
    foreach (KeyValuePair<string, int> entry in ages)
    {
        Console.WriteLine($"Name: {entry.Key}, Age: {entry.Value}");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    HashSet

    HashSet<int> uniqueNumbers = new HashSet<int> { 1, 2, 3, 4, 5 };
    foreach (int number in uniqueNumbers)
    {
        Console.WriteLine(number);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Queue

    Queue<string> queue = new Queue<string>();
    queue.Enqueue("Alice");
    queue.Enqueue("Bob");
    foreach (string name in queue)
    {
        Console.WriteLine(name);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    Stack

    Stack<string> stack = new Stack<string>();
    stack.Push("Alice");
    stack.Push("Bob");
    foreach (string name in stack)
    {
        Console.WriteLine(name);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    以上每个示例都将遍历集合中的每个元素,并使用Console.WriteLine将其打印到控制台。请注意,遍历Dictionary时,我们遍历的是KeyValuePair实例,可以通过KeyValue属性访问键和值。

  • 相关阅读:
    工程模块化--项目组件/模块解耦&&放弃业务里的switch case/if else if
    【前端攻城师之JS基础】04原型对象
    2022年亚太杯APMCM数学建模大赛D题储能系统中传热翅片的结构优化求解全过程文档及程序
    Flutter 精品项目大全之 蛋糕店在线商城项目支持定义tabbar(教程含源码)
    Java.lang.Class类 getMethods()方法有什么功能呢?
    Java线程的生命周期,终止与复位
    海尔智家:“超预期”成为“新常态”
    第五十六回 徐宁教使钩镰枪 宋江大破连环马-飞桨图像分类套件PaddleClas初探
    RT-Thread 内存管理(学习二)
    CYEZ 模拟赛 3
  • 原文地址:https://blog.csdn.net/yao_hou/article/details/134452795