あなたがこれを持っていたとしましょう:
class A
{
public string name;
}
そして、各オブジェクトList<A>
の を印刷したいとします。
通常、アイテムを印刷するだけの場合は、次のようにします name
String.Join(", ", myList);
しかし、オブジェクト名name
ではなく、プロパティを出力する必要があります。myList
foreach よりも簡単な方法はありますか?
使用する
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);
name プロパティのみが必要な場合は、クラス A の ToString() メソッドをオーバーライドするのが最善の方法です。
public override String ToString()
{
return name;
}
さらにプロパティがある場合は、一致するように ToString() を調整します。
public override String ToString()
{
return String.Format("Name: {0}. Prop1: {1}", name, prop1);
}
等...