📜  LINQ到列表集合(1)

📅  最后修改于: 2023-12-03 15:02:41.727000             🧑  作者: Mango

LINQ到列表集合

LINQ(Language Integrated Query)是.NET Framework中的一种强大的查询语言,可以在各种数据源中查询和操作数据。在这篇文章中,我们将介绍如何在C#中使用LINQ来操作列表集合。

列表集合

列表集合是一种常见的数据结构,它可以用于存储一组相关的数据。C#中的List<T>类是一个通用的列表集合,它可以存储任意类型的数据。我们可以通过以下方式来创建一个空的List<T>对象:

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

这个列表集合可以用来存储整数类型的数据。我们可以通过以下方式来向列表中添加元素:

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

我们也可以通过下标访问列表中的元素:

int firstNumber = numbers[0]; //获取第一个元素

在这篇文章中,我们会通过LINQ来实现对这个列表中的元素进行查询和操作。

查询数据

一般情况下,我们需要从列表集合中查询符合条件的数据。例如,我们要从上面的列表中查询所有的偶数,可以通过以下方式实现:

var evenNumbers = numbers.Where(n => n % 2 == 0);

在这条LINQ查询语句中,Where()方法用于筛选符合条件的元素,其中n => n % 2 == 0是一个匿名函数,它表示只选取能够被2整除的元素。

我们也可以将多个条件进行组合查询:

var selectedNumbers = numbers.Where(n => n % 2 == 0 && n > 5);

在这条LINQ查询语句中,我们通过&&操作符将两个条件进行了组合查询,选取了所有大于5的偶数。

列表集合类提供了Linq.Select方法,选择你所需要的内容

var selectNumbers = numbers.Select(n => new { Number = n, IsEven = n % 2 == 0 });

在这条LINQ查询语句中,我们通过Select方法过滤出需要内容并组织成新的格式进行返回

聚合数据

另一类常见的操作是聚合查询,它可以对整个列表或者指定的一组元素进行聚合操作,例如求和、平均值、最大值、最小值等。

int sum = numbers.Sum();
int max = numbers.Max();
int min = numbers.Min();
double average = numbers.Average();

在这些聚合操作中,我们可以直接调用Sum()Max()Min()Average()等方法来完成计算。

修改数据

除了查询数据和聚合计算外,我们还可以通过LINQ来修改列表中的元素。例如,我们要将上面的列表中的所有偶数都加1,可以通过以下方式实现:

var updatedNumbers = numbers.Select(n => n % 2 == 0 ? n + 1 : n);

在这条LINQ查询语句中,我们使用了Select()方法来遍历所有的元素,并对被选中的元素进行修改,它就像是一个迭代器,每次返回一个新的元素。其中n % 2 == 0 ? n + 1 : n是一个三目运算符,如果这个元素是偶数,则将其加1,否则不做任何改变。最终的结果是一个新的列表,其中所有的偶数都被修改成了原来的值加1。

总结

在这篇文章中,我们介绍了如何使用LINQ来操作列表集合。通过LINQ,我们可以方便地进行查询、计算、修改等操作,并且代码简洁易读。当然,这只是LINQ中的一部分,还有很多其他的特性和用法,需要进一步学习和探索。