我正在使用CsvHelper库工具来帮助将我创建的列表写入CSV文件。
using (var sr = new StreamReader(inPath))
{
using (var sw = new StreamWriter(outPath))
{
var reader = new CsvReader(sr);
var writer = new CsvWriter(sw);
IEnumerable records = reader.GetRecords<DataRecord>().ToList();
List<CountAndFrequencyClass> list1 = new List<CountAndFrequencyClass>();
list1 = CountAndFrequency(records, "ShipperName", 1);
List<CountAndFrequencyClass> list2 = new List<CountAndFrequencyClass>();
list2 = CountAndFrequency(records, "ShipperCity", 1);
list1 = list1.Concat(list2).ToList();
writer.WriteRecords(list2);
}
}
list1 = list1.Concat(list2).ToList();确实确实连接了字符串,但是当将它们写出到CSV文件时,它们将它们堆叠在一起。我想找到一种方法,以水平(而不是垂直显示)水平连接列表。
感谢您的帮助,如果需要其他信息,请告诉我!
您可以使用循环将list2列添加到list1的记录中
foreach (var i=0 ; i< list1.Count; i++)
{
if(i>=list2.Count ) break;
var rec1 = list1[i];
var rec2 = list2[i];
rec1.NewColumn = rec2.ColumnToAdd;
}
您可以在遍历列表时将它们写到文件中。
using (var sr = new StreamReader(inPath))
{
using (var sw = new StreamWriter(outPath))
{
var reader = new CsvReader(sr);
var writer = new CsvWriter(sw);
IEnumerable records = reader.GetRecords<DataRecord>().ToList();
List<CountAndFrequencyClass> list1 = new List<CountAndFrequencyClass>();
list1 = CountAndFrequency(records, "ShipperName", 1);
List<CountAndFrequencyClass> list2 = new List<CountAndFrequencyClass>();
list2 = CountAndFrequency(records, "ShipperCity", 1);
for (int i = 0; i < list1.Count; i++)
{
writer.WriteRecord(list1[i]);
writer.WriteRecord(list2[i]);
writer.NextRecord();
}
}
}