有人可以告诉我如何使用 CsvWriter 编写对象列表而不进行阻止吗?这对我来说并不明显。
我是否需要先调用 WriteRecords(),然后再调用 FlushAsync(),还是应该使用 NextRecordAsync()逐个写入每个对象?强>?
实际上,我希望使用一种专用方法,但是它不存在:
public Task WriteRecordsAsync(...);
答案 0 :(得分:2)
WriteRecords
将为您调用NextRecord
,因为它正在写多个。因此,您需要手动编写记录。只有几行而已。
foreach (var record in records)
{
csv.WriteRecord(record);
await csv.NextRecordAsync();
}
之所以没有WriteRecordsAsync
是因为它不是必需的。基本上,这只是复制库中的大多数代码,只是节省了几行。在系统中,对async
的最低需求的唯一部分是写入TextWriter
,因此在async
之上的内容也应尽可能少。