26 集合和数组之集合简介

在前一篇文章中,我们讨论了 C# 中数组的使用,包括数组的创建、初始化、遍历等操作。在这一篇中,我们将聚焦于 C# 中的集合(Collections)。集合与数组相比,提供了更灵活的数据管理方式。下面,我们将介绍集合的基本概念以及常见的集合类型。

集合的概念

在 C# 中,集合是一个可以存储多个元素的数据结构,集合里的元素可以是不同的类型。集合提供了更多的操作方法,如添加、删除和查找元素等,较之数组,集合的大小更具动态性。

集合大致可以分为两类:

  1. 非泛型集合:这些集合不使用泛型,可以存储任何类型的对象。
  2. 泛型集合:这些集合采用泛型,能够高效地存储特定类型的对象,编译时便可检查类型,降低运行时错误的概率。

集合的基本类型

C# 中有多种集合类型,以下是一些比较常用的集合:

1. ArrayList

ArrayList 是一种非泛型集合,它可以存放任何对象类型,且数组的大小是可变的。虽然使用方便,但容易引入类型不一致的问题。

示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Collections;

class Program
{
static void Main()
{
ArrayList arrayList = new ArrayList();

// 向 ArrayList 中添加元素
arrayList.Add(1);
arrayList.Add("Hello");
arrayList.Add(3.14);

// 遍历 ArrayList
foreach (var item in arrayList)
{
Console.WriteLine(item);
}
}
}

2. List<T>

List<T> 是一种泛型集合,能确保存储的都是同种类型的对象。使用 List<T> 可以避免类型转换问题,提高类型安全性。

示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Collections.Generic;

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

// 向 List 中添加元素
numbers.Add(1);
numbers.Add(2);
numbers.Add(3);

// 遍历 List
foreach (int number in numbers)
{
Console.WriteLine(number);
}
}
}

3. Dictionary<TKey, TValue>

Dictionary<TKey, TValue> 是一种键值对集合,可以通过键快速访问值。由于它使用哈希表,因此查找速度非常快。

示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.Collections.Generic;

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

// 向 Dictionary 中添加元素
ageDictionary.Add("Alice", 30);
ageDictionary.Add("Bob", 25);

// 遍历 Dictionary
foreach (var kvp in ageDictionary)
{
Console.WriteLine($"{kvp.Key} 的年龄是 {kvp.Value}");
}
}
}

总结

本篇文章简要介绍了 C# 集合的基本概念和几种常见的集合类型,包括 ArrayListList<T>Dictionary<TKey, TValue>。对比于数组,集合更为灵活且功能强大,使得数据管理变得更为简便。对于小白来说,理解并掌握集合的基本使用,是进一步学习 C# 语言的重要基础。

在下一篇文章中,我们将深入讨论 List<T> 的使用方法,包括增加、删除、查找等操作,敬请期待!

26 集合和数组之集合简介

https://zglg.work/csharp-zero/26/

作者

IT教程网(郭震)

发布于

2024-08-13

更新于

2024-08-13

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论