C# list.Select动态添加列
时间: 2024-09-29 14:04:44 浏览: 49
在C#中,`List<T>` 类型有一个 `Select()` 方法,这是一个 LINQ (Language Integrated Query) 的操作符,用于对集合中的每个元素应用指定的转换函数,并返回一个新的序列。当你想要动态地添加列到现有的列表时,可以使用匿名类型的字典模式,结合 `Select` 方法。
假设你有一个包含学生信息的对象列表 `students`,比如有 `Name` 和 `Age` 两个属性,如果你想添加一个新的 `Grade` 列,你可以这样做:
```csharp
// 假设原始 List<Student> 存储了 Name 和 Age 属性
var originalColumns = students.Select(student => new { student.Name, student.Age });
// 定义一个转换函数,这里我们简单地创建一个匿名类型添加 Grade 属性
Func<Student, dynamic> addGrade = student => new {
Name = student.Name,
Age = student.Age,
Grade = "DefaultGrade" // 可以为每个学生设置默认值
};
// 使用 Select 方法结合新的转换函数生成新的列表,其中包含了原有的和新添加的列
var extendedColumns = originalColumns.Select(addGrade);
```
在这个例子中,`extendedColumns` 就是一个新的 `IEnumerable<dynamic>`,每个元素都是一个包含三个属性(Name、Age 和 Grade)的新匿名类型。
阅读全文