C# linq select 动态取多个字段
时间: 2024-09-28 12:17:18 浏览: 103
LINQ多个Sum同时执行的方法
在C#中,LINQ (Language Integrated Query) 提供了一种强大的查询语法,用于从集合中提取数据。`Select` 方法是 LINQ 中常用的一个操作符,它允许你在查询过程中对每个元素应用一个转换函数,并返回一个新的序列。如果你想动态地选取多个字段,可以创建一个匿名类型或自定义类型,然后在`Select`里指定这些字段。
例如,假设你有一个 `Person` 对象列表,你想根据需要选择 `FirstName` 和 `LastName`,你可以这样做:
```csharp
List<Person> people = ...; // 假设Person类有 FirstName 和 LastName 属性
var selectedProperties = people.Select(p => new { p.FirstName, p.LastName });
```
这里,`new { p.FirstName, p.LastName }` 定义了一个新的匿名类型,它有两个属性,分别对应 `Person` 类的 `FirstName` 和 `LastName`。`Select` 方法会将每个 `Person` 对象转换成这个新类型的一个实例。
如果你希望创建一个自定义类型,首先需要定义该类型,例如:
```csharp
public class PersonPropertySelector
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
// 然后使用
var selectedProperties = people.Select(p => new PersonPropertySelector { FirstName = p.FirstName, LastName = p.LastName });
```
阅读全文