我正在处理大量数据对象,我需要能够根据csv标头映射将它们转换为文本文件。标题映射基本上是需要以该特定顺序打印出的字段列表,例如如果标题映射是:ID,Name,Location等,则需要将所有对象的这三个字段写入csv文件。
问题在于对象列表可以是数百万,而标题映射中可以有数百个字段名 - 这些字段中的字段名始终是有效的字段名。目前,我正在使用的代码遍历整个对象列表,并在所有csv值的映射上使用switch语句来打印出所需的字段。代码如下所示:
foreach (Object o in Objects)
{
foreach (String FieldName in CsvFieldsList)
{
switch (FieldName)
{
case "ID":
//Do something for this specific ID:
outString.Append(o.ID);
break;
....
....
}
}
}
AFAIK,C#将使用字典用于字符串切换语句,所以这些应该很快,但是,这些代码需要花费数小时来处理我们的一些大数据集,并且我想知道是否可以改进这个设计。
答案 0 :(得分:0)