我正在研究一个项目,我想要一个C#对象并将其导出到CSV文件。C#将字符串转换为多个CSV轮廓列?
出口的对象,看起来像这样的伟大工程:
public class Person
{
public string Name { get; set; }
public string Height { get; set; }
public string Address { get; set; }
public string FavoriteColor { get; set; }
}
在上述情况下,CSV代码,我有出口,看起来像以下文件:
Name Height Address FavoriteColor
---------------------------------
Debacle 6 feet 123 Hope St Yellow
Yarn 5 feet 321 Despair Blue
但是,当我试图增加复杂性,使它回避我:
public class Person
{
public string Name { get; set; }
public string Height { get; set; }
public string Address { get; set; }
public string FavoriteColor { get; set; }
public List<string> Hobbies { get; set; }
}
输出如下所示:
Name Height Address FavoriteColor Hobbies
------------------------------------------------
Debacle 6 feet 123 Hope St Yellow System.Collections.Generics.List<string>
Yarn 5 feet 321 Despair Blue System.Collections.Generics.List<string>
因此,不是打印出Hobbies对象,而是打印出对象的类型和内存位置。
我试图找到一种方法把它从清单中抓住并打印出来的东西看起来更像是这样的:
Name Height Address FavoriteColor Hobbie1 Hobbie2 Hobbie3
----------------------------------------------------------------
Debacle 6 feet 123 Hope St Yellow reading writing otherstuff
Yarn 5 feet 321 Despair Blue yes no
但是我来了空白如何动态生成这些列。 我已经将List对象更改为逗号描述的字符串,字典等,但我无法获得所需的功能。
C#中有没有一招我可能会失踪?
非常感谢您的帮助!
您可以发布您用于将对象转换为CSV的导出代码吗? –
你的个人课程中你的ToString方法是什么样的?你如何试图输出“爱好”列表,因为它很可能需要一个循环来输出单个项目。例如:Foreach(兴趣中的字符串hobby)。 – JohnG
您没有创建一个CSV,其中**之间会有**逗号**。如果你希望这些值排成一列,那么你必须**使用空格来填充**值,以使它们对齐,或者用** TABS **分隔这些值(这可能需要额外的调整,取决于各个值的长度)。无论如何,如果你有一个'Lists'值,你可以使用如下代码快速输出:'String.Join(“,”,Hobbies.ToArray());'。 –