C#各类集合汇总

C# 各类集合汇总

在 C# 中有许多不同种类的集合,每种都有其特点和用途,下面对常用的一些集合进行简单的介绍和示例演示。

List

List 是一种动态数组,可以根据需要调整大小。它可以用于存储任何类型的对象,尽管在大多数情况下它用于存储对象的列表。

下面是一个例子,展示如何在 List 中添加和访问元素:

List<string> fruits = new List<string>();
fruits.Add("apple");
fruits.Add("banana");
fruits.Add("grape");

// 遍历 List<string> 中的所有元素并输出
foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}
// 输出:apple, banana, grape

Dictionary

Dictionary 是一种用于存储键值对的集合类型。这些键值对是固定在一起的,并且可以通过键来访问值,就像从字典中查找单词一样。

下面是一个例子,展示如何在 Dictionary 中添加和访问键值对:

Dictionary<string, int> fruitCount = new Dictionary<string, int>();
fruitCount.Add("apple", 3);
fruitCount.Add("banana", 2);
fruitCount.Add("grape", 5);

// 输出 apple 的数量
Console.WriteLine(fruitCount["apple"]);  // 输出:3

// 遍历 Dictionary<string, int> 中的所有键值对并输出
foreach (KeyValuePair<string, int> pair in fruitCount)
{
    Console.WriteLine("There are {0} {1}s", pair.Value, pair.Key);
}
// 输出:There are 3 apples
//       There are 2 bananas
//       There are 5 grapes

Queue

Queue 是一种先进先出队列。它可以用于模拟等待列表,或按照特定顺序处理任务。

下面是一个例子,展示如何在 Queue 中添加和访问元素:

Queue<string> customers = new Queue<string>();
customers.Enqueue("Alice");
customers.Enqueue("Bob");
customers.Enqueue("Charlie");

// 处理到达顺序
while (customers.Count > 0)
{
    Console.WriteLine(customers.Dequeue() + " has been served.");
}
// 输出:Alice has been served.
//       Bob has been served.
//       Charlie has been served.

Stack

Stack 是一种后进先出的堆栈。它可以用于执行函数调用、存储撤消历史记录等操作。

下面是一个例子,展示如何在 Stack 中添加和访问元素:

Stack<string> browsers = new Stack<string>();
browsers.Push("Chrome");
browsers.Push("Firefox");
browsers.Push("Safari");

// 逆处理创建顺序
while (browsers.Count > 0)
{
    Console.WriteLine("Chrome has closed " + browsers.Pop() + ".");
}
// 输出:Chrome has closed Safari.
//       Chrome has closed Firefox.
//       Chrome has closed Chrome.

Conclusion

以上介绍了 C# 中常用的一些集合类型,每种集合都有其特点和用途。在实际编程中,需要根据具体需求选择合适的集合类型来存储数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#各类集合汇总 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • 利用C#实现AOP常见的几种方法详解

    利用C#实现AOP常见的几种方法详解 AOP(Aspect-Oriented Programming)是面向切面编程的缩写,它是一种编程思想,通过将程序中的通用功能(如日志记录、异常处理、性能统计等)抽象出来,无需修改原始代码,就可以为各个类或方法注入通用功能。AOP技术的主要优点在于可以提高代码的重用性、可维护性和可扩展性。 C#是一种面向对象的编程语言,…

    C# 2023年5月15日
    00
  • 基于WPF实现筛选下拉多选控件

    下面是 “基于WPF实现筛选下拉多选控件” 的完整攻略: 1. 目标 我们需要实现一个在 WPF 窗口上的筛选下拉多选控件。它看起来类似于传统的下拉列表,但同时可以让用户选中多个选项。 2. 组件设计 2.1 客户端(前端)设计 我们可以采用 WPF 来制作该控件。设计一个基于 WPF 的用户控件 MultiSelectComboBox.xaml ,它由以下…

    C# 2023年6月3日
    00
  • 基于C#实现语音识别功能详解

    基于C#实现语音识别功能详解 简介 语音识别是目前非常流行的人机交互方式之一,也有很多应用场景,诸如:车载音响、语音助手、智能家居等。本文将介绍如何使用C#实现语音识别功能。 准备工作 为实现语音识别功能,我们需要引入第三方库——Microsoft Speech SDK。首先需要前往Microsoft官网下载安装SDK,地址:https://www.micr…

    C# 2023年5月15日
    00
  • 改进c# 代码的五个技巧(二)

    当我们编写 C# 代码时,我们总是希望写出性能更好、更简单、更具可读性的代码。在这篇文章中,我们会介绍五个技巧,这些技巧可以帮助你完善你的 C# 代码。 1. 使用局部变量代替复杂的表达式 复杂的表达式往往会使代码难以理解和维护。使用局部变量来存储这些表达式的值可以帮助我们避免这个问题。例如,下面的代码使用了一个复杂的 LINQ 表达式来计算一系列数字的平均…

    C# 2023年5月15日
    00
  • C# 网络编程之UDP

    C# 网络编程之UDP 什么是UDP UDP是一个无连接的传输协议,它不保证可靠传输和数据的顺序,但是其传输速度很快,适合于传输实时性要求高的数据。 UDP的使用场景 由于UDP不需要建立连接,所以适合于一对多或多对多的广播传输。比如实现网络游戏的消息传输,实时视频传输等。 UDP编程实现 发送端实现 UDP发送方需要绑定发送端口,然后指定目标地址和目标端口…

    C# 2023年6月6日
    00
  • 深入解析.NET 许可证编译器 (Lc.exe) 的原理与源代码剖析

    深入解析.NET 许可证编译器 (Lc.exe) 的原理与源代码剖析 简介 .NET 许可证编译器 (Lc.exe) 是 Microsoft .NET Framework 中的一个工具,用来创建和管理 .NET 应用程序的许可证。Lc.exe 工具可以将某个特定的 Assembly 添加到另一个 Assembly 中,从而使其需要一个许可证才能运行。在运行某…

    C# 2023年5月31日
    00
  • 基于WPF实现步骤控件的示例代码

    接下来我将详细讲解如何基于WPF实现步骤控件的示例代码。 什么是步骤控件 步骤控件常用于引导用户完成多步操作的过程,通常由一组步骤组成,每个步骤都包含了一个标题和内容。用户可以根据提示完成当前步骤的操作,然后进入下一步骤。 示例代码攻略 步骤一:创建控件 首先,我们需要创建一个WPF控件来实现步骤控件的功能。我们可以使用ItemsControl控件,并对其进…

    C# 2023年6月7日
    00
  • .Net 项目代码风格要求小结

    我很乐意分享一下“.Net 项目代码风格要求小结”的完整攻略。 一、标准命名规则 在 .Net 项目中,遵循标准命名规则可以提高代码的可读性和可维护性。下面是一些常用的规则: 1. 命名空间 命名空间包含一个或多个类,为了方便区分不同的模块或功能,应该使用层次结构。层次结构的命名方式应该类似于文件夹,使用点来分隔各个层级。例如: namespace Comp…

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部