📜  用于过滤项目列表的 Lambda 表达式 - C# (1)

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

用于过滤项目列表的 Lambda 表达式 - C#

在 C# 中,Lambda 表达式是一种匿名方法,经常用于 LINQ 查询、委托和事件处理程序中。使用 Lambda 表达式,可以更简洁地编写代码,并提高代码的可读性。

在项目列表中,如果想要从一长串数据中筛选出符合条件的项目,可以使用 Lambda 表达式来过滤列表。以下是一个示例:

List<Project> projects = new List<Project>
{
    new Project { Name = "Project A", Status = "In Progress" },
    new Project { Name = "Project B", Status = "Completed" },
    new Project { Name = "Project C", Status = "In Progress" },
    new Project { Name = "Project D", Status = "Not Started" }
};

// 使用 Lambda 表达式来筛选状态为 "In Progress" 的项目
List<Project> inProgressProjects = projects.Where(p => p.Status == "In Progress").ToList();

在上面的示例中,我们使用了 Where 方法来筛选符合条件的项目。Lambda 表达式 p => p.Status == "In Progress" 中的 p 是一个变量,在每次迭代时会代表列表中的一个项目。Lambda 表达式的右半部分 p.Status == "In Progress" 是我们所要筛选的条件。

另一个示例,如果想要筛选出名称包含 "Project A" 的项目,可以使用以下代码:

// 使用 Lambda 表达式来筛选名称包含 "Project A" 的项目
List<Project> projectsNamedA = projects.Where(p => p.Name.Contains("Project A")).ToList();

在上面的示例中,我们使用了 Contains 方法来判断项目名称是否包含 "Project A"。Lambda 表达式 p => p.Name.Contains("Project A") 中的 p 仍然代表列表中的一个项目,右半部分 p.Name.Contains("Project A") 判断项目名称中是否包含 "Project A"。

总之,使用 Lambda 表达式可以简化过滤项目列表的代码,并提高代码的可读性。现在你已经掌握了它的用法,快去试试吧!