-1

たとえば、私の Dog クラスには Flea という別のクラスがあります。

class Dog
{
   public Flea flea;
}

さて、 Dogs のリストがある場合:List<Dogs> manyDogs どうすればそのリストを に変換できList<Flea> fleaInEachDogsますか?

現在、私は次のようにします:

List<Flea> fleaInEachDogs = new List<Flea>();
foreach(Dog d in manyDogs)
{
    fleaInEachDogs.Add(d.flea);
}

Listしかし、より便利な集約メソッドがすべてのクラスで確実に利用できると思います。存在しますか?

4

1 に答える 1

8

Select名前でプロパティを取得するための "pluck" メソッドのようなものはありませんが、LINQ の拡張機能を使用してより簡潔にすることができます (リフレクションが必要になることを確認してください)。

var fleaInEachDogs = manyDogs.Select(dog => dog.flea);

(それを使用ToList()してIEnumerable、元のコードとまったく同じリストを取得します。)

于 2013-04-20T18:26:29.670 に答える