📜  使用谓词过滤列表内容(匿名方法) - C# (1)

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

使用谓词过滤列表内容(匿名方法) - C#

在C#中,可以使用谓词对列表进行过滤操作,其中匿名方法是实现谓词的一种方式。本文将介绍如何使用匿名方法实现谓词过滤列表内容。

概述

谓词是一个委托,它表示一个方法,该方法具有一个参数并返回一个布尔值。在C#中,谓词通常用于过滤列表内容,例如从一个字符串列表中获取所有以某个前缀开头的字符串。

匿名方法是一种可直接在代码中定义的方法,而不必预先定义它们的名称或返回类型。匿名方法通常用于表示委托或事件处理程序。

过滤列表内容

假设有一个字符串列表,其中包含以下项:

List<string> strings = new List<string>
{
    "apple",
    "banana",
    "cherry",
    "pineapple",
    "grape",
    "lemon"
};

要从该列表中获取所有以字母a开头的字符串,可以使用谓词和匿名方法进行过滤,示例如下:

List<string> startsWithA = strings.FindAll(delegate(string s) { return s.StartsWith("a"); });

上述代码中,使用了匿名方法来定义谓词,该方法接受一个字符串参数s,并返回一个布尔值,用于判断s是否以字母a开头。FindAll方法用于在列表中查找所有符合条件的项,并返回一个新的列表。

也可以使用Lambda表达式来定义谓词,示例如下:

List<string> startsWithA = strings.FindAll(s => s.StartsWith("a"));

Lambda表达式是一种更简洁的方式来定义匿名方法,其语法类似于数学中的函数定义,其中箭头(=>)表示“变成”。

结论

使用谓词和匿名方法可以轻松对列表内容进行过滤操作,使代码更加简洁易读。在实际开发中,也可以使用Lambda表达式代替匿名方法,提高代码效率。