我正在研究一個項目,我想要一個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());'。 –