📅  最后修改于: 2023-12-03 15:25:53.391000             🧑  作者: Mango
LINQ(Language Integrated Query)是一个强大的 C# 查询语言,它提供了一种简便的方法来操作各种数据源。在 LINQ 中使用 ID 列表进行过滤是非常常见的需求,下面将会介绍如何使用 LINQ 来实现这个功能。
首先我们需要有一个数据源,这里我们以一个简单的人员列表为例:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
List<Person> persons = new List<Person>()
{
new Person() { Id=1, Name="张三", Age=22 },
new Person() { Id=2, Name="李四", Age=25 },
new Person() { Id=3, Name="王五", Age=33 },
new Person() { Id=4, Name="赵六", Age=18 },
new Person() { Id=5, Name="钱七", Age=28 }
};
现在我们有了这个人员列表,如果我们想要根据指定的 ID 列表来获取对应的人员信息,可以使用以下方式:
List<int> ids = new List<int>() { 1, 3, 5 };
var query = from p in persons
where ids.Contains(p.Id)
select p;
在上面的代码中,我们使用了 where
关键字和 Contains
方法进行了过滤操作。其中 where
定义了过滤条件,而 Contains
用于判断指定的 ID 是否在 ids
列表中存在。
最终我们返回了一个查询结果,其中包含 ID 列表中所对应的人员信息。需要注意的是,此时返回的结果是一个 LINQ 查询。
如果我们希望获得实际的人员列表(而不是 LINQ 查询),我们可以使用以下方式来获取最终的结果:
List<Person> result = query.ToList();
或者直接将两个查询合并为一句,简化代码:
List<Person> result = (from p in persons
where ids.Contains(p.Id)
select p).ToList();
在 LINQ 中使用 ID 列表进行过滤是非常常见的操作。通过上面的介绍,我们可以看到 LINQ 能够提供简便的方法来操作各种数据源。希望这篇文章能够对您有所帮助。