在对象列表中打印所有属性的最佳方法是什么?

arg*_*eus 3 .net c# linq

说你有这个:

class A
{
    public string name;
}
Run Code Online (Sandbox Code Playgroud)

然后你有一个List<A>并且想要打印name每个对象.
通常情况下,如果你只想打印这些项目,你会做类似的事情

String.Join(", ", myList);
Run Code Online (Sandbox Code Playgroud)

但我需要打印name属性,而不是myList对象名称.有没有比foreach更简单的方法?

Nik*_*wal 12

使用

String.Join(", ", myList.Select(x => x.name));
Run Code Online (Sandbox Code Playgroud)

为此,您必须包含System.Linq名称空间

编辑:

如果你想在他的代码完成这个之后去寻找Adam的答案

String.Join(", ", myList.Select(x => x.ToString()));
Run Code Online (Sandbox Code Playgroud)

由Adam Goss提供的回答:

您不需要调用.Select(x => x.ToString())内部对象内部调用String.Join(),因此如果您覆盖ToString(),则只需调用String.Join(", ", myList);

所以在他的代码完成你所想的之后

String.Join(", ", myList);
Run Code Online (Sandbox Code Playgroud)