C # добавить результаты асинхронных методов, когда все закончено

У меня есть асинхронный метод, который получаетList<long> идентификаторов компонентов для идентификатора автомобиля. Я хочу получить идентификаторы компонентов для нескольких сотен автомобилей асинхронно, поэтому я написал метод ниже. Моя цель - на самом деле сложить результаты всехGetAllComponentIdsForCar задачи и вернуть их из метода ниже.

public async Task<List<long>> GetListOfComponentIds(List<long> carIds)
{
    List<Task> tasksList = new List<Task>();

    foreach (var carId in carIds)
    {
        Task<List<long>> getComponentIds = GetAllComponentIdsForCar(carId);
        tasksList.Add(getComponentIds);
    }

    await Task.WhenAll(tasksList);

   //List<long> sumOfAllTaskResults...or array...or something
}

Как мне это сделать?

Примечание - я ищу что-то похожее на Angular'sq.all который просто возвращает массив всех результатов задачи (/ обещания) по завершении.

Мне уже удавалось получить результаты асинхронных задач в C #, но это включало создание массива ожидаемых задач, и это просто ужасный способ сделать это.

Я попытался прочитать документацию и вопросы Microsoft здесь, но все, что я вижу, это аргументы о WaitAll против WhenAll.

Редактировать:

Ответы на вопрос(1)

Ваш ответ на вопрос