📅  最后修改于: 2023-12-03 15:22:26.696000             🧑  作者: Mango
在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表达式代替匿名方法,提高代码效率。