如果列表中有List,如何仅使用linq选择Id

Ka *_*ius 3 c# linq

我想从另一个列表中的对象列表中仅选择id:https: //dotnetfiddle.net/Leu1AD

我只需要使用linq Select或SelectMany:

var obj = offices.Select(p => new {Id = p.Id, Employess = p.Employess}).ToList();
Run Code Online (Sandbox Code Playgroud)

目前我得到以下结果:

[
  {
    "Id":1,
    "Employess":[
      {
        "Id":1,
        "FirstName":"a",
        "LastName":"b"
      },
      {
        "Id":2,
        "FirstName":"c",
        "LastName":"d"
      }
    ]
  },
  {
    "Id":2,
    "Employess":[
      {
        "Id":3,
        "FirstName":"e",
        "LastName":"f"
      },
      {
        "Id":4,
        "FirstName":"g",
        "LastName":"h"
      }
    ]
  }
]
Run Code Online (Sandbox Code Playgroud)

但我需要这个结果:

[
  {
    "Id":1,
    "Employess":[
      {
        "Id":1
      },
      {
        "Id":2
      }
    ]
  },
  {
    "Id":2,
    "Employess":[
      {
        "Id":3
      },
      {
        "Id":4
      }
    ]
  }
]
Run Code Online (Sandbox Code Playgroud)

你有什么想法怎么做?

Gib*_*bon 6

将结果作为所需格式的一种方法是沿着这条线

var obj = offices.Select(p => new {Id = p.Id, Employess = p.Employess.Select(y=> new {y.Id})}).ToList();
Run Code Online (Sandbox Code Playgroud)

最终成为

[{"Id":1,"Employess":[{"Id":1},{"Id":2}]},{"Id":2,"Employess":[{"Id":3},{"Id":4}]}]
Run Code Online (Sandbox Code Playgroud)