📜  如何在 C# 中过滤列表(1)

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

如何在 C# 中过滤列表

在 C# 中,可以使用 Where() 方法来过滤列表。这个方法返回一个新的 IEnumerable<T>,其中只包含符合给定条件的元素。 Where() 方法需要一个委托,这个委托将评估序列中的每个元素并返回一个布尔值表明该元素是否应包含在筛选后的序列中。

让我们来看一个例子。假设我们有一个包含整数的列表,我们想要从这个列表中筛选出所有大于10的数字。我们可以按照以下方式使用 Where() 方法:

List<int> numbers = new List<int> { 5, 10, 15, 20, 25 };
var filteredNumbers = numbers.Where(n => n > 10);

foreach (var number in filteredNumbers)
{
    Console.WriteLine(number);
}

输出结果:

15
20
25

这里,我们使用了 lambda 表达式 n => n > 10 作为 Where() 方法的参数,这个表达式表示筛选出所有大于10的数字。

除了 Where() 方法,C# 还提供了很多用于筛选和转换序列的方法,例如 Select() 用于对序列中的每个元素进行转换, OrderBy()OrderByDescending() 用于对序列进行排序等等。你可以根据实际情况选择合适的方法来操作你的列表。

需要注意的是,通过 Where() 方法返回的 IEnumerable<T> 是一个惰性计算的序列,它不会立即执行筛选操作,而是在枚举器中逐个计算每个元素。这样可以提高性能,特别是在处理大型集合时。但是如果你需要立即计算所有筛选后的元素,你可以使用 ToList()ToArray() 方法将延迟执行的序列转换为一个列表或数组。

总结

C# 中可以使用 Where() 方法来过滤列表。使用该方法时,需要传递一个委托,这个委托要求返回一个布尔值表明该元素是否应包含在被筛选后的序列中。除此之外,还有多个重要的方法可用于序列的筛选和转换。在处理集合时,请选择合适的方法来提高性能。