C# list select 动态指定列
时间: 2024-09-28 14:17:28 浏览: 18
在C#中,`List<T>` 的 `Select()` 方法是一个非常强大的 LINQ 查询操作,它允许你在遍历集合的同时动态地转换每个元素。当你需要从数据源中选择特定的属性或计算新的值时,可以使用表达式语法来指定列。
例如,假设你有一个 `Person` 类,包含 `Name` 和 `Age` 两个属性,你可以创建一个新的 `List<string>`,只包含所有人的名字,如下所示:
```csharp
List<Person> people = ...; // 假设people已填充了Person对象
List<string> namesOnly = people.Select(p => p.Name).ToList(); // 使用Select方法按Name属性转换
```
在这个例子中,`p => p.Name` 是一个匿名函数表达式,它告诉 `.Select()` 方法取 `Person` 对象的 `Name` 属性作为结果。`ToLis`t()` 则将查询的结果转换回列表形式。
如果你想基于当前的条件动态选择列,你可以使用 Lambda 表达式的条件判断,如根据年龄筛选出年龄大于 18 的人姓名:
```csharp
List<string> adultsNames = people.Where(p => p.Age > 18)
.Select(p => p.Name)
.ToList();
```
这里先用 `Where()` 进行过滤,然后对符合条件的人选取 `Name` 属性。