【发布时间】:2017-01-20 20:40:23
【问题描述】:
我有想要导出到 excel 的对象列表:
//My export to excel function:
public static void ExportToExcel(string[,] data, string excelFilePath = null)
{
// .....
}
我的列表包含很多列,所以我想选择特定的列并将它们添加到二维数组中,同时在顶部添加标题
公开课学生
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public Address Adress { get; set; }
public Evaluation Evaluation { get; set; }
// ... many more
}
列表:
> IEnumerable<Student> students
要选择的字段:
- 身份证
- 姓名
- 地址.邮编
我可以使用 for 循环执行此操作,但是我对 linq 感兴趣,我也想听听您关于性能的建议,因为列表有 + 200k 条记录
编辑 样本
列 => ID 名称 邮政编码
行 => 值
ID Name Zip
1 Mike 1101
2 Jan 2250
3 Peter 4456
【问题讨论】:
-
为什么要使用二维数组而不是一些 DTO?您从哪里获得这些数据?
-
students.Select(i => new { i.Id, i.Name, i.Address.Zipcode }).ToArray()之类的东西并将其保存到您想要的任何数组中。其实我不确定你为什么需要一个二维数组而不是一维数组? -
你的数组的二维是多少?你能展示你期望的数组的示例声明吗?
-
如果您关心性能,那么
ExportToExcel()应该期待IEnumerable<T>而不是string[,]。这样,您可以逐项逐行导出,而无需同时将所有 +200k 记录保存在内存中。 -
帖子中添加的示例