0

次のような 2 つのオブジェクト モデルがあります。

public class MyObject
{
   public List<SomeOtherObject> TheListOfSomeOtherObjects { get; set; }
}

public class SomeOtherObject
{
   long SomeOtherObjectID { get; set; }
}

そして、リスト内にあるすべてのを抽出したい、MyObjects呼び出されたのリストがありますListOfMyObjectsSomeOtherObjectIDTheListOfSomeOtherObjects

私はこのようなものを書きたい:

var ListOfAllSomeOtherObjectID = (from l in ListOfMyObjects
                           select l.SomeOtherObject.SomeOtherObjectID ).ToList();

構文が原因で機能しません。ネストされたリストのリストを取得するにはどうすればよいですか?

ご提案いただきありがとうございます。

4

3 に答える 3

1

ネストされたリストをフラット化しようとしています:

var allChildren = myObjects.SelectMany(o => o.ChildObjects).ToList();

Select()これらのオブジェクトのプロパティを取得する場合は、別の呼び出しが必要になります。

var allChildren = myObjects.SelectMany(o => o.ChildObjects)
                           .Select(c => c.SomeProperty)
                           .ToList();
于 2012-10-14T16:42:05.817 に答える
0

以下のようにすることができます:

var ids = l.SelectMany(o => o.TheListOfSomeOtherObjects).Select(o => o.SomeOtherObjectID);

SelectMany、リストのリストからフラット化されたリストを作成します。

ToList()リストが必要な場合はa を追加します。

于 2012-10-14T16:48:33.633 に答える
-1

それを試してみてください

var listSOOIds = listOfMyObjects.TheListOfSomeOtherObjects.Select(s => s.SomeOtherObjectID).ToList();
于 2012-10-14T16:48:24.760 に答える