如何合并未知数量的数组?

How to merge unknown amount of arrays?

我正在制作驾驶执照考试练习题。用户可以选择多个类别来获取问题。我想从这个数组中取出票并将它们全部放在一个数组中。 这是我的代码:

public Ticket[] GetTickets(int numOfCat)
    {
        bool getTicks = true;
        if (getTicks)
        {
            System.Console.WriteLine(DrivingLicenceStorage.Categories.Length);
            for (int i = 0; i < numOfCat; i++)
            {
                System.Console.Write($"Enter category N{i + 1}: ");
                var Ids = Convert.ToInt32(Console.ReadLine());
                if (Ids > DrivingLicenceStorage.Categories.Length)
                {
                    System.Console.WriteLine("Invalid Input");
                    System.Console.WriteLine("Try Again");
                    i--;
                }
                else
                {
                    Tickets = DrivingLicenceStorage.Categories.ElementAt(Ids).Tickets;
                    getTicks = false;
                }
            }

        }
        

        return Tickets;
    }

问题是 Tickets 从用户输入的最后一个类别中获取门票。如何合并所有选定类别的门票?

数组不是具有动态元素数量的列表的正确数据类型。您可以改用 List<Ticket>

示例代码:

var ticketList = new List<Ticket>();
...
// repeat as often as required 
​ticketList.AddRange(DrivingLicenceStorage.Categories.ElementAt(Ids).Tickets); ​   
...
return ticketList.ToArray();