C# list.Select lambda 动态添加列
时间: 2024-09-29 21:05:00 浏览: 49
C# 中的GroupBy的动态拼接问题及GroupBy<>用法介绍
在C#中,`List<T>.Select()` 方法通常用于转换集合中的每个元素,但它本身并不直接提供动态添加列的功能。然而,你可以结合Lambda表达式和匿名类型或动态类型来模拟这样的效果。当你想要基于现有元素创建新的数据结构并添加额外的列时,可以这样做:
```csharp
// 假设你有一个Person列表
List<Person> people = new List<Person>();
// 使用Select()和Lambda表达式添加新列,比如"FullName"属性
List<dynamic> dynamicPeople = people
.Select(person => new {
FirstName = person.FirstName,
LastName = person.LastName,
FullName = $"{person.FirstName} {person.LastName}"
})
.ToList();
```
在这个例子中,`Select()`方法会将每个`Person`对象转化为一个新的匿名类型,其中包含原有的`FirstName`和`LastName`以及通过字符串插值计算得到的`FullName`。结果是一个新的动态列表`dynamicPeople`。
阅读全文