C#使用超过8个项目的Tuple创建csv

时间:2018-10-15 03:27:04

标签: c# csv tuples

我目前正在使用CSV生成文件功能,看起来像这样。

Tuple<string, string, string, string, int, int, Tuple<int, int, int, int>> newCol;

List<Tuple<string, string, string, string, int, int, Tuple<int,int,int,int>>> tList = 
    new List<Tuple<string, string, string, string, int, int, Tuple<int, int, int, int>>>();
foreach (var item in itemList)
{
    newCol = new Tuple<string, string, string, string, int, int,Tuple<int,int,int,int>>(...);
    tList.Add(newCol);
}

StringWriter sw = new StringWriter();
var csv = new CsvWriter(sw);
csv.Configuration.HasHeaderRecord = false;
csv.WriteField("Item 1");
csv.WriteField("Item 2");
csv.WriteField("Item 3");
csv.WriteField("Item 4");
csv.WriteField("Item 5");
csv.WriteField("Item 6");
csv.WriteField("Item 7");
csv.WriteField("Item 8");
csv.WriteField("Item 9");
csv.WriteField("Item 10");
csv.NextRecord();
csv.WriteRecords(tList);

return GetBytes(sw.ToString());

如上面所示的代码,每条记录有10个项目,但是Tuple仅能容纳7个单个项目,其余记录必须为新的Tuple

声明列表没有问题,但是在尝试csv.Writerecords(tList)时,除前7个项目之外的其余项目都无法写入csv文件,

有什么方法可以解决这个问题?

对此的任何建议将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

您应该创建一个新的自己的类或结构,使其具有适合您需求的字段。用新的类替换Tuple

    public class MyClass
{
    public int myProperty {get;set;}
    .
    .
    .
    .
    .
}

List<MyClass> tList = 
    new List<MyClass>();
foreach (var item in itemList)
{
    newCol = new MyClass(....);
    tList.Add(newCol);
}