如何解决Linq列表到字节数组
我在Google中搜索stackoverflow,但没有得到简单的答案。有什么方法可以将linq列表转换为字节数组?
public FileResult GetCustomerListCSV()
{
List<Customer> CustomerList = new List<Customer>();
CustomerList = dbContext.Customer.ToList(); // Need to convert this into byte array
return File(CustomerList,"text/csv","CustomerList.csv");
}
请帮助。
解决方法
您必须先创建一个CSV字符串,然后将其转换为字节:
var lines = CustomerList.Select(c => $"{c.Id},{c.Name}");
var csv = string.Join(Environment.NewLine,lines);
var bytes = Encoding.UTF8.GetBytes(csv);
return File(bytes,"text/csv","CustomerList.csv");
或者,使用CsvHelper库:
using var ms = new MemoryStream();
using var writer = new StreamWriter(ms);
using var csv = new CsvWriter(writer,CultureInfo.InvariantCulture);
csv.WriteRecords(CustomerList);
csv.Flush();
ms.Seek(0,SeekOrigin.Begin);
return File(ms,"CustomerList.csv");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。