专业编程基础技术教程

网站首页 > 基础教程 正文

C# 泛型集合概览

ccvgpt 2024-08-18 14:27:22 基础教程 8 ℃

在C#中,泛型集合提供了一种类型安全的方式来存储和操作数据集合。通过使用泛型,可以在编译时检查类型错误,从而减少运行时错误。C# 提供了多种泛型集合类型,如 List<T>、Dictionary<TKey, TValue>、HashSet<T> 等,它们都位于 System.Collections.Generic 命名空间中。

泛型集合的优点:

  1. 类型安全:泛型集合在编译时就会进行类型检查,确保集合中只能存储指定类型的元素,从而避免了类型转换错误。
  2. 性能优化:由于泛型集合不需要在运行时进行装箱和拆箱操作,因此它们通常比非泛型集合(如 ArrayList)具有更好的性能。
  3. 可重用性:泛型集合可以用于存储任何类型的数据,使得代码更加通用和可重用。

常见泛型集合类型:

  1. List
  • 一个有序的集合,允许重复的元素。
  • 提供了丰富的方法来操作集合,如添加、删除、查找和遍历元素。
  1. Dictionary<TKey, TValue>
  • 一个键值对的集合,其中每个键都是唯一的。
  • 提供了快速的查找功能,通过键可以快速访问对应的值。
  1. HashSet
  • 一个不允许重复元素的集合。
  • 提供了高效的添加和查找操作,因为它基于哈希表实现。
  1. Queue
  • 一个先进先出(FIFO)的集合。
  • 提供了入队(enqueue)和出队(dequeue)操作。
  1. Stack
  • 一个后进先出(LIFO)的集合。
  • 提供了压栈(push)和弹栈(pop)操作。
  1. SortedList<TKey, TValue>
  • 一个按照键排序的键值对集合。
  • 提供了按照键排序的快速查找功能。
  1. SortedSet
  • 一个按照元素排序的集合。
  • 提供了高效的添加和查找操作,并且集合中的元素是唯一的。

使用泛型集合的示例:

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // 使用 List<T>
        List<string> names = new List<string>();
        names.Add("Alice");
        names.Add("Bob");
        names.Add("Charlie");

        foreach (var name in names)
        {
            Console.WriteLine(name);
        }

        // 使用 Dictionary<TKey, TValue>
        Dictionary<int, string> ages = new Dictionary<int, string>();
        ages = "Alice";
        ages = "Bob";
        ages = "Charlie";

        foreach (var age in ages)
        {
            Console.WriteLine(#34;Age: {age.Key}, Name: {age.Value}");
        }

        // 使用 HashSet<T>
        HashSet<int> numbers = new HashSet<int>();
        numbers.Add(1);
        numbers.Add(2);
        numbers.Add(3);

        foreach (var number in numbers)
        {
            Console.WriteLine(number);
        }
    }
}

在上述示例中,我们分别使用了 List<T>、Dictionary<TKey, TValue> 和 HashSet<T> 来存储和操作数据。这些集合类型展示了泛型在C#中的强大功能,以及如何利用泛型来创建类型安全且高效的代码。

C# 泛型集合概览

总结:

泛型集合是C#中非常重要的一部分,它们提供了强大的数据结构来存储和操作各种类型的数据。通过使用泛型集合,可以编写出更加健壮、灵活和性能优化的代码。了解和掌握这些集合类型及其使用方法,对于成为一名高效的C#开发者至关重要。

Tags:

最近发表
标签列表