3

あなたがこれを持っていたとしましょう:

class A
{
    public string name;
}

そして、各オブジェクトList<A>の を印刷したいとします。 通常、アイテムを印刷するだけの場合は、次のようにします name

String.Join(", ", myList);

しかし、オブジェクト名nameではなく、プロパティを出力する必要があります。myListforeach よりも簡単な方法はありますか?

4

2 に答える 2

13

使用する

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);
于 2012-08-14T11:47:48.820 に答える
2

name プロパティのみが必要な場合は、クラス A の ToString() メソッドをオーバーライドするのが最善の方法です。

public override String ToString()
{
    return name;
}

さらにプロパティがある場合は、一致するように ToString() を調整します。

public override String ToString()
{
    return String.Format("Name: {0}. Prop1: {1}", name, prop1);
}

等...

于 2012-08-14T11:49:47.403 に答える