代码改变世界

c# 集合类有哪些方法

  钟铧若岩  阅读(9)  评论(0编辑  收藏  举报

在 C# 中,集合类主要分为泛型集合和非泛型集合,常见的集合类有 List<T>Dictionary<TKey, TValue>HashSet<T>Queue<T>Stack<T> 等,下面为你详细介绍这些集合类的常用方法

 

类型 添加 删除 查找 属性
List Add();   Insert(obj, index);    Remove(obj);  RemoveAt(index); clear() Contains(obj);IndexOf(obj); Count
Dictionary Add(key,val); TryAdd(key,val);

Remove(key);clear();

Contains(key); Contains(val);TryGetValue(key,out val); Count
HashSet Add(obj); Remove(obj); clear(); Contains Count
Queue Enqueue(); Dequeue();  Peek(); Clear() Contains Count
Stack Push(); Pop(); Peek(); Clear() Contains Count

 

List<T>

 

List<T> 是一个动态数组,提供了灵活的元素添加、删除和访问操作
 
复制代码
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<int> numbers = new List<int>();

        // Add:添加元素到列表末尾
        numbers.Add(1);
        numbers.Add(2);

        // Insert:在指定索引位置插入元素
        numbers.Insert(1, 3);

        // Remove:移除指定元素
        numbers.Remove(2);

        // RemoveAt:移除指定索引位置的元素
        numbers.RemoveAt(0);

        // Contains:判断列表是否包含指定元素
        bool contains = numbers.Contains(3);

        // IndexOf:返回指定元素第一次出现的索引
        int index = numbers.IndexOf(3);

        // Count:获取列表中的元素数量
        int count = numbers.Count;

        // Clear:移除列表中的所有元素
        numbers.Clear();
    }
}
复制代码

Dictionary<TKey, TValue>

 

Dictionary<TKey, TValue> 用于存储键值对,通过键快速查找对应的值。
复制代码
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        Dictionary<string, int> scores = new Dictionary<string, int>();

        // Add:添加键值对
        scores.Add("Alice", 85);
        scores.Add("Bob", 90);

        // TryAdd:尝试添加键值对,如果键已存在则不添加
        bool added = scores.TryAdd("Alice", 95);

        // Remove:移除指定键的键值对
        scores.Remove("Bob");

        // ContainsKey:判断字典是否包含指定键
        bool containsKey = scores.ContainsKey("Alice");

        // ContainsValue:判断字典是否包含指定值
        bool containsValue = scores.ContainsValue(85);

        // TryGetValue:尝试获取指定键对应的值
        if (scores.TryGetValue("Alice", out int value))
        {
            Console.WriteLine($"Alice's score: {value}");
        }

        // Count:获取字典中的键值对数量
        int count = scores.Count;

        // Clear:移除字典中的所有键值对
        scores.Clear();
    }
}
复制代码

HashSet<T>

 

HashSet<T> 用于存储唯一元素的集合,不允许重复元素。
复制代码
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        HashSet<int> uniqueNumbers = new HashSet<int>();

        // Add:添加元素,
        uniqueNumbers.Add(1);
        uniqueNumbers.Add(2);

        // Remove:移除指定元素
        uniqueNumbers.Remove(2);

        // Contains:判断集合是否包含指定元素
        bool contains = uniqueNumbers.Contains(1);

        // Count:获取集合中的元素数量
        int count = uniqueNumbers.Count;

        // Clear:移除集合中的所有元素
        uniqueNumbers.Clear();
    }
}
复制代码

Queue<T>

 

Queue<T> 是一个先进先出(FIFO)的集合。
 
复制代码
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        Queue<int> queue = new Queue<int>();

        // Enqueue:将元素添加到队列末尾
        queue.Enqueue(1);
        queue.Enqueue(2);

        // Dequeue:移除并返回队列开头的元素
        int first = queue.Dequeue();

        // Peek:返回队列开头的元素,但不移除
        int peeked = queue.Peek();

        // Contains:判断队列是否包含指定元素
        bool contains = queue.Contains(2);

        // Count:获取队列中的元素数量
        int count = queue.Count;

        // Clear:移除队列中的所有元素
        queue.Clear();
    }
}
复制代码

Stack<T>

 

Stack<T> 是一个后进先出(LIFO)的集合。
复制代码
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        Stack<int> stack = new Stack<int>();

        // Push:将元素压入栈顶
        stack.Push(1);
        stack.Push(2);

        // Pop:移除并返回栈顶元素
        int top = stack.Pop();

        // Peek:返回栈顶元素,但不移除
        int peeked = stack.Peek();

        // Contains:判断栈是否包含指定元素
        bool contains = stack.Contains(1);

        // Count:获取栈中的元素数量
        int count = stack.Count;

        // Clear:移除栈中的所有元素
        stack.Clear();
    }
}
复制代码

以上是 C# 中常见集合类的一些常用方法,这些方法能帮助你高效地操作集合中的元素。

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示