LINQ / 投影

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

Team[] teams = { 
    new() { 
        Id = 1,
        Names = new[] {"Tom""Mark"} }, 
    new() { 
        Id = 2,
        Names = new string[] {} }
};

var names =
    from team in teams
    from name in team.Names.DefaultIfEmpty()
    select new {
        team.Id,
        Name = name ?? "no one"
    };
//names is {{Id = 1, Name = "Tom"},
//          {Id = 1, Name = "Mark"},
//          {Id = 2, Name = "no one"}}

Console.WriteLine(JsonSerializer.Serialize(names));

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