2012-05-10 18 views
10

在C#,如果我有列表的List<MyObj>其中MyObj是具有覆蓋ToString()方法,使得每個MyObj對象在該列表可被容易地轉換爲字符串的自定義類。的string.join上的對象

我該如何將加入這個List<MyObj>用一個分隔符(例如管道(|))分隔成單個字符串。

所以,如果我有3個MyObj對象的ToString方法分別產生AAA,BBB,CCC。我會創建一個字符串:AAA | BBB | CCC。

有關簡單類型的列表,例如List<string>,我只需執行此操作:String.Join("|",myList.ToArray());。有沒有辦法可以做類似的事情?或者我不得不遍歷對象列表並使用字符串生成器將列表中的每個對象的ToString附加在一起?

回答

33

在.NET 4中,你可以只使用:

var x = string.Join("|", myList); 

.NET 3.5沒有許多重載string.Join雖然 - 你需要執行字符串的轉換,並把它變成一個數組明確:

var x = string.Join("|", myList.Select(x => x.ToString()).ToArray()); 

比較可用的重載:

+0

謝謝,完全信息,我需要的。 – user17753