📜  foreach c# linq 示例 - C# (1)

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

foreach c# linq 示例 - C#

在C#中,使用foreach来遍历集合是一种很常见的做法。但是C#中的LINQ提供了更加便捷快速的方法来遍历集合。本文以一些示例为例,介绍foreach与LINQ的区别以及如何使用LINQ。

foreach

先来看一下用foreach遍历集合的示例:

List<int> numbers = new List<int> {1, 2, 3, 4, 5};

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

这段代码创建了一个List类型的集合,然后使用foreach遍历集合中的元素,输出到控制台上。

LINQ

LINQ提供了一些方法来代替使用foreach来遍历集合。本文只介绍其中的一个方法:ForEach。

下面看一下如何使用ForEach方法:

List<int> numbers = new List<int> {1, 2, 3, 4, 5};

numbers.ForEach(number => Console.WriteLine(number));

这段代码与foreach的示例实现的效果是一样的,都是遍历List集合中的元素,并输出到控制台上。

使用ForEach方法的优势在于可以将输出语句与遍历代码合并到一起,更加简洁明了。将遍历和输出语句合并到一起是一个很简单的事情,只需要在ForEach方法中传入一个Lambda表达式即可。

针对复杂类型的LINQ

当需要遍历的集合不是基本类型时,使用LINQ就显得更加方便。下面看一下如何使用LINQ遍历一个复杂类型的集合:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

List<Person> people = new List<Person>
{
    new Person { Name = "Lucas", Age = 30 },
    new Person { Name = "Emma", Age = 20 },
    new Person { Name = "Alex", Age = 25 },
};

people.ForEach(person => Console.WriteLine($"Name: {person.Name}, Age: {person.Age}"));

这段代码创建了一个List类型的集合,其中每个元素都是一个Person对象。使用ForEach方法遍历这个集合,并输出每个Person对象的Name和Age属性。与使用foreach遍历List集合的示例不同,这个示例使用了Lambda表达式和字符串插值功能。但是这都不是问题,因为可以将ForEach方法的参数换成任意类型的Lambda表达式,以满足不同的需求。

虽然这个示例只是一个简单的示例,但是使用LINQ的优势可以在更加复杂的场景中得到体现。

总结

C#中使用foreach遍历集合是一种很常见的做法,但是为了更加方便快捷地遍历集合,可以使用LINQ提供的方法。使用ForEach方法可以将遍历和输出语句合并到一起,更加简洁明了。同时,使用LINQ处理复杂类型的集合也是一种很好的选择。