假设你有这个:
class A
{
public string name;
}
然后你有一个List<A>
并且想要打印name
每个对象的。
通常,如果您只想打印项目,您会执行类似的操作
String.Join(", ", myList);
但我需要打印name
属性,而不是myList
对象名称。有比 foreach 更简单的方法吗?
采用
String.Join(", ", myList.Select(x => x.name));
为此,您必须包含System.Linq
命名空间
编辑:
如果您想在他的代码之后寻求亚当的答案,请执行此操作
String.Join(", ", myList.Select(x => x.ToString()));
礼貌 Adam Goss 对答案的评论:
您不需要调用.Select(x => x.ToString())
,因为它会在内部被 object inside 调用String.Join()
,所以如果您覆盖ToString()
,您只需调用String.Join(", ", myList);
所以在他的代码做你所想的之后
String.Join(", ", myList);
如果您只想要 name 属性,那么最好的方法实际上是覆盖类 A 上的 ToString() 方法。
public override String ToString()
{
return name;
}
如果您有更多属性,请调整您的 ToString() 以匹配:
public override String ToString()
{
return String.Format("Name: {0}. Prop1: {1}", name, prop1);
}
ETC...