Додавання списку <t> .add () іншого списку


134

У мене є, IEnumerable<TravelDetails>і я намагаюся додати vales в for-loop до a List<TravelDetails>. Я продовжую отримувати помилки.

Помилка 1 Аргумент 1: неможливо перетворити з 'System.Collections.Generic.List' в 'TrafficCore.DataObjects.TripDetails' C: \ TrafficNew \ TI 511-Web \ Traffic 2.0 \ 511Traffic \ 511Traffic \ Моделі \ 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
    }
}

Може хтось мені допоможе в цьому.
Спасибі, Паван


Чи можете ви сказати, на якому рядку вказана помилка?
Р. Мартіньо Фернандес

Відповіді:


269

List<T>.Addдодає єдиний елемент. Замість цього використовуйте List<T>.AddRangeдля додавання кількох значень.

Крім того, List<T>.AddRangeприймає IEnumerable<T>, тому вам не потрібно перетворювати tripDetailsв а List<TripDetails>, ви можете передати його безпосередньо, наприклад:

tripDetailsCollection.AddRange(tripDetails);
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.