将对象列表转换为一行中的字符串

时间:2013-01-02 17:29:07

标签: c# string list

我有一个实现ToString()的对象列表。我需要将整个列表转换为一行中的一个字符串。我怎么能这样做?

4 个答案:

答案 0 :(得分:21)

另一种可能有用的方法是string.Join(),它接受​​一组对象并将它们与你想要的任何分隔符连接起来。例如:

var combined = string.Join(", ", myObjects);

将创建一个以逗号/空格分隔的字符串。

答案 1 :(得分:15)

假设你的意思是你的对象实现了ToString,我相信这样做会:

String.Concat( objects.Select(o=>o.ToString()) );

根据dtb说明,这也应该有效:

String.Concat( objects );

请参阅http://msdn.microsoft.com/en-us/library/dd991828.aspx

当然,如果你没有实现ToString,你也可以这样做:

String.Concat( objects.Select(o=>o.FirstName + " " + o.LastName) );

答案 2 :(得分:5)

您可以使用String.Join连接对象列表。

string str = String.Join(",", objects);

答案 3 :(得分:4)

这些都不适合我。我很困惑,因为文档明确表示他们不会工作(需要字符串,而不是对象)。但是修改@Adil的原始答案(通过查看以前的修订版找到),我得到了一个工作正常的版本:

string.Join( ",", objectList.Select(c=>c.ToString()).ToArray<string>())
编辑:根据@Chris的评论 - 我使用的是Unity的.NET版本。我使用Microsoft文档作为参考,所以我仍然感到困惑,为什么这个文档被低估了,但是......也许它是一个需要这个解决方案的Unity特定问题。