C# List中FindAll用法的一些简单示例


在C#中,`List` 类的 `FindAll` 方法是一个非常有用的工具,它允许你基于指定的谓词(一个返回布尔值的函数)来找到列表中所有满足条件的元素,并返回这些元素的一个新列表。下面是一些简单的示例来说明 `FindAll` 的用法。

### 示例 1: 查找所有偶数

假设我们有一个整数列表,并希望找到并返回所有的偶数。


using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

        // 使用FindAll来找到所有偶数
        List<int> evenNumbers = numbers.FindAll(n => n % 2 == 0);

        // 输出结果
        foreach (int num in evenNumbers)
        {
            Console.WriteLine(num);
        }
    }
}

### 示例 2: 查找所有长度大于3的字符串

在这个例子中,我们有一个字符串列表,我们想要找到所有长度大于3的字符串。


using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<string> words = new List<string> { "apple", "banana", "cherry", "date" };

        // 使用FindAll来找到所有长度大于3的字符串
        List<string> longWords = words.FindAll(w => w.Length > 3);

        // 输出结果
        foreach (string word in longWords)
        {
            Console.WriteLine(word);
        }
    }
}

### 示例 3: 查找特定条件的对象

假设我们有一个 `Person` 类,我们想要基于某些条件(比如年龄大于30)来找到所有的人。


using System;
using System.Collections.Generic;

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

    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

class Program
{
    static void Main()
    {
        List<Person> people = new List<Person>
        {
            new Person("Alice", 25),
            new Person("Bob", 30),
            new Person("Charlie", 35)
        };

        // 使用FindAll来找到所有年龄大于30的人
        List<Person> olderPeople = people.FindAll(p => p.Age > 30);

        // 输出结果
        foreach (Person person in olderPeople)
        {
            Console.WriteLine($"{person.Name} is {person.Age} years old.");
        }
    }
}

以上示例展示了如何在C#中使用 `List.FindAll` 方法来根据不同的条件筛选列表中的元素。