我有一个实现ToString()
的对象列表。我需要将整个列表转换为一行中的一个字符串。我怎么能这样做?
答案 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特定问题。