📅  最后修改于: 2023-12-03 15:08:15.977000             🧑  作者: Mango
在C#中,我们可以使用Linq查询语句来选择类对象。Linq是一种语言集成查询(Language-Integrated Query),可以在C#中查询各种数据源,如对象、数组、XML、数据库等。这篇文章介绍如何使用Linq从查询C#中选择类对象。
在开始之前,我们需要有一个包含类对象的集合(如List、Array、IEnumerable等)。 在这篇文章中,我们将使用一个包含Person类对象的List集合作为示例。Person类的定义如下:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
我们模拟生成一组Person对象,并用List集合存储起来:
var persons = new List<Person>
{
new Person { Name = "Alice", Age = 20 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Charlie", Age = 40 }
};
如果我们想选择所有Person对象,我们可以使用以下Linq查询语句:
var allPersons = from p in persons select p;
或者使用方法语法:
var allPersons = persons.Select(p => p);
两种方式的返回值都是IEnumerable
有时候,我们只需要选择符合特定条件的对象。比如,我们想选择年龄大于等于30的Person对象,那么我们可以使用以下Linq查询语句:
var personsOver30 = from p in persons where p.Age >= 30 select p;
或者使用方法语法:
var personsOver30 = persons.Where(p => p.Age >= 30);
两种方式的返回值都是IEnumerable
有时候,我们只需要选择对象的某些属性。比如,我们想选择所有Person对象的姓名属性,那么我们可以使用以下Linq查询语句:
var names = from p in persons select p.Name;
或者使用方法语法:
var names = persons.Select(p => p.Name);
两种方式的返回值都是IEnumerable
有时候,我们需要选择一些特定的对象,并且把这些对象转换成自定义的结果,比如一个新的类对象或一个匿名类型。比如,我们想选择年龄大于等于30的Person对象,并且将它们转换成一个新的类对象:
public class PersonDTO
{
public string Name { get; set; }
public int Age { get; set; }
}
var personsDTO = from p in personsWhere p.Age >= 30
select new PersonDTO { Name = p.Name, Age = p.Age };
或者使用方法语法:
var personsDTO = persons.Where(p => p.Age >= 30)
.Select(p => new PersonDTO { Name = p.Name, Age = p.Age });
两种方式的返回值都是IEnumerable
在C#中,我们可以使用Linq查询语句从集合中选择特定的类对象。使用Linq,可以轻松查询对象、过滤对象、选择特定的属性,甚至将对象转换成自定义的结果。希望本文对读者了解如何使用Linq查询C#中选择类对象有所帮助。