📜  如何从查询c#中选择类对象(1)

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

如何从查询C#中选择类对象

在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类型的。在这个例子中,allPersons集合包含了3个Person对象。

选择特定的对象

有时候,我们只需要选择符合特定条件的对象。比如,我们想选择年龄大于等于30的Person对象,那么我们可以使用以下Linq查询语句:

var personsOver30 = from p in persons where p.Age >= 30 select p;

或者使用方法语法:

var personsOver30 = persons.Where(p => p.Age >= 30);

两种方式的返回值都是IEnumerable类型的。在这个例子中,personsOver30集合包含了2个Person对象。

选择特定的属性

有时候,我们只需要选择对象的某些属性。比如,我们想选择所有Person对象的姓名属性,那么我们可以使用以下Linq查询语句:

var names = from p in persons select p.Name;

或者使用方法语法:

var names = persons.Select(p => p.Name);

两种方式的返回值都是IEnumerable类型的。在这个例子中,names集合包含了三个字符串,分别是"Alice"、"Bob"和"Charlie"。

选择特定的对象并返回自定义结果

有时候,我们需要选择一些特定的对象,并且把这些对象转换成自定义的结果,比如一个新的类对象或一个匿名类型。比如,我们想选择年龄大于等于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类型的。在这个例子中,personsDTO集合包含了两个PersonDTO对象。

总结

在C#中,我们可以使用Linq查询语句从集合中选择特定的类对象。使用Linq,可以轻松查询对象、过滤对象、选择特定的属性,甚至将对象转换成自定义的结果。希望本文对读者了解如何使用Linq查询C#中选择类对象有所帮助。