LINQ / 投影

using System;
using System.Linq;
using System.Text.Json;

Team[] teams = { 
    new Team { 
        Id = 1,
        Names = new[] {"Tom""Mark"} }, 
    new Team { 
        Id = 2,
        Names = new[] {"Max""Anna"}}
};

//first method
var names1 = teams
    .SelectMany(team => team.Names
    (team, name) => 
    new {team.Id, Name = name});
//names1 is {{Id = 1, Name = "Tom"},
//           {Id = 1, Name = "Mark"},
//           {Id = 2, Name = "Max"},
//           {Id = 2, Name = "Anna"}}

//second method
var names2 =
    from team in teams
    from name in team.Names
    select new {
        team.Id,
        Name = name
    };
//names2 is {{Id = 1, Name = "Tom"},
//           {Id = 1, Name = "Mark"},
//           {Id = 2, Name = "Max"},
//           {Id = 2, Name = "Anna"}} 

Console.WriteLine(JsonSerializer.Serialize(names1));
Console.WriteLine(JsonSerializer.Serialize(names2));

struct Team {
    public int Id;
    public string[] Names;
}