关于C#的`List <>.ToString`的问题

mis*_*tor 42 c# list

为什么C#List<>ToString方法没有提供合理的字符串表示来打印其内容?object.ToString当我尝试打印一个List<>对象时,我得到了类名(我假设它是默认实现).为什么会这样?

Jon*_*eet 59

简单的答案是:这就是它的方式,我很害怕.

同样List<T>不会覆盖GetHashCodeEquals.请注意,除了调用简单ToString本身之外,它的格式化方式很少,可能是逗号分隔值.

如果需要,您可以随时编写自己的扩展方法来执行适当的格式化,或者使用较新的重载string.Join使其非常简单:

string text = string.Join(",", list);
Run Code Online (Sandbox Code Playgroud)

  • @Ryan:这取决于OP是否使用.NET 3.5或.NET 4 - 在.NET 4中,`string.Join`有更多重载. (6认同)
  • 这应该是string text = string.Join(',',list.ToArray()); ? (3认同)
  • @ Nom1fan:谢谢,固定。 (2认同)