Добавление списка <t> .add () другой список

134

У меня есть IEnumerable<TravelDetails>и я пытаюсь добавить forвейлы в -loop к List<TravelDetails>. Я продолжаю получать ошибки.

Ошибка 15 Аргумент 1: невозможно преобразовать из «System.Collections.Generic.List» в «TrafficCore.DataObjects.TripDetails» C: \ TrafficNew \ TI 511-Web \ Traffic 2.0 \ 511Traffic \ 511Traffic \ Models \ DrivingTime.cs

Мой код

List<TripDetails> tripDetailsCollection = new List<TripDetails>();
foreach (DrivingTimeRoute dtr in dtRoutes)
{
    foreach (Trip trip in dtr.Trips)
    {
        foreach (TripPathLink tpl in trip.TripPathLinks)
        {
            tplCollection.Add(tpl);
        }
        IEnumerable<TripDetails> tripDetails = //long Linq-to-Sql here
        List<TripDetails> td = tripDetails.ToList();
        tripDetailsCollection.Add(td); // <<< Error here
    }
}

Может кто-то помочь мне с этим.
Спасибо паван

Паван
источник
Можете ли вы сказать, на какой строке находится ошибка?
Р. Мартиньо Фернандес
Возможный дубликат добавления содержимого списков в другой список C #
Майкл Фрейдгейм

Ответы:

269

List<T>.Addдобавляет один элемент. Вместо этого используйте List<T>.AddRangeдля добавления нескольких значений.

Кроме того, List<T>.AddRangeпринимает IEnumerable<T>, поэтому вам не нужно преобразовывать tripDetailsв List<TripDetails>, вы можете передать его напрямую, например:

tripDetailsCollection.AddRange(tripDetails);
Крис Шмих
источник