在C#中,FindAll
是一个扩展方法,用于在通用列表中查找满足特定条件的所有元素。FindAll
方法接受一个委托参数,该委托参数是一个函数,用于检查列表中的每个元素是否满足特定条件。
如果要为FindAll
方法添加参数,可以通过以下方式:
FindAll
方法时,将额外的参数传递给委托函数。例如,假设我们有一个Person
类,其中包含Name
和Age
属性,我们想要找到所有年龄大于等于某个值的人。我们可以创建一个自定义委托类型,如下所示:
public delegate bool FindAllPredicate<T>(T item, int ageThreshold);
然后,我们可以使用这个委托类型来创建一个委托函数,如下所示:
public static bool IsAgeGreaterThanOrEqual(Person person, int ageThreshold)
{
return person.Age >= ageThreshold;
}
最后,我们可以在调用FindAll
方法时,将额外的参数传递给委托函数,如下所示:
List<Person> people = new List<Person>();
// Add some people to the list
int ageThreshold = 18;
List<Person> filteredPeople = people.FindAll(new FindAllPredicate<Person>(IsAgeGreaterThanOrEqual), ageThreshold);
在这个例子中,我们创建了一个自定义委托类型FindAllPredicate<T>
,该类型接受一个额外的参数ageThreshold
。我们使用这个委托类型来创建一个委托函数IsAgeGreaterThanOrEqual
,该函数检查Person
对象的年龄是否大于等于ageThreshold
。最后,我们在调用FindAll
方法时,将ageThreshold
参数传递给委托函数。
领取专属 10元无门槛券
手把手带您无忧上云