我目前正在使用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文件,
有什么方法可以解决这个问题?
对此的任何建议将不胜感激。谢谢。
答案 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);
}