说你有这个:
class A
{
public string name;
}
然后你有一个List<A>
,想要打印每个对象的name
通常情况下,如果您只想打印项目,则需要执行类似
String.Join(", ", myList);
但我需要打印name
属性,而不是myList
对象名称。有没有比foreach更简单的方法?
答案 0 :(得分:11)
使用
String.Join(", ", myList.Select(x => x.name));
为此,您必须包含System.Linq
命名空间
修改强>
如果你想在他的代码做了这个
之后去寻找Adam的答案String.Join(", ", myList.Select(x => x.ToString()));
礼貌Adam Goss评论答案:
您无需拨打.Select(x => x.ToString())
,因为String.Join()
内的对象会在内部调用,因此如果您覆盖ToString()
,则只需拨打String.Join(", ", myList);
所以在他的代码完成你所想的之后
String.Join(", ", myList);
答案 1 :(得分:2)
如果你只想要name属性,那么最好的方法是覆盖A类的ToString()方法。
public override String ToString()
{
return name;
}
如果您有更多属性,请调整ToString()以匹配:
public override String ToString()
{
return String.Format("Name: {0}. Prop1: {1}", name, prop1);
}
等...