27 集合和数组之List的使用

在上一篇中,我们对C#中的集合和数组进行了简单的介绍,提到这些数据结构的基本概念和不同之处。今天,我们将深入探讨C#中List<T>的使用,作为一个强大的集合类型,它提供了动态数组的功能,使得我们能够轻松地管理数据。

什么是List

List<T>是属于System.Collections.Generic命名空间的一种集合类型。它能够存储一个指定类型的对象集合,具有如下特性:

  • 动态大小:与数组不同,List<T>可以根据需要自动调整其大小。
  • 类型安全:由于List<T>是泛型集合,它提供了对指定类型对象的安全存储,避免了类型转换错误。

基本使用

要使用List<T>,首先需要引用其命名空间:

1
using System.Collections.Generic;

然后,可以创建一个List<T>实例,例如,我们创建一个存储int类型的List

1
List<int> numbers = new List<int>();

添加元素

我们可以使用Add方法向List中添加元素:

1
2
3
numbers.Add(1);
numbers.Add(2);
numbers.Add(3);

此时,numbers列表的内容为 [1, 2, 3]

访问元素

访问List中的元素可以使用索引,索引从0开始:

1
2
int firstNumber = numbers[0]; // 访问第一个元素
Console.WriteLine(firstNumber); // 输出 1

遍历List

可以使用foreach循环来遍历List中的所有元素:

1
2
3
4
foreach (int number in numbers)
{
Console.WriteLine(number);
}

常用操作

插入元素

使用Insert方法可以在指定位置插入元素:

1
numbers.Insert(1, 4); // 在索引1的位置插入元素4

numbers的内容现在变为 [1, 4, 2, 3]

删除元素

可以使用Remove方法删除指定值的第一个匹配项,或使用RemoveAt方法根据索引删除元素:

1
2
numbers.Remove(2); // 删除值为2的元素
numbers.RemoveAt(0); // 删除索引0的元素

执行以上操作后,numbers的内容为 [4, 3]

查找元素

使用Contains方法可以检查List中是否包含某个值:

1
bool hasFour = numbers.Contains(4); // 返回true

示例:简单的学生成绩管理

接下来,我们来一个简单的案例,使用List来管理学生成绩。

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

class Program
{
static void Main()
{
List<double> grades = new List<double>();

// 添加成绩
grades.Add(88.5);
grades.Add(92.3);
grades.Add(75.0);
grades.Add(83.2);

// 计算平均分
double average = 0;
foreach (double grade in grades)
{
average += grade;
}
average /= grades.Count;

Console.WriteLine($"学生的平均成绩是: {average}");
}
}

在这个示例中,我们创建一个List<double>来存储学生的成绩,并计算出其平均值。运行此代码将输出学生的平均成绩。

注意事项

  1. 泛型约束:使用List<T>时,确保你熟悉使用的类型;某些操作(如排序)会受到类型限制。
  2. 性能List<T>的动态扩展可能会导致性能开销,尤其在批量插入时,可以考虑预先定义容量。

小结

今天我们学习了C#中的List<T>的基本用法,包括如何添加、访问、删除和遍历元素。List<T>是非常实用的集合类型,尤其适合需要动态大小和易于操作的场景。

在下一篇文章中,我们将进行简单的C#项目之项目需求分析,希望大家继续关注,进一步提升自己的C#编程能力!

27 集合和数组之List的使用

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

作者

IT教程网(郭震)

发布于

2024-08-13

更新于

2024-08-13

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论