Agregar lista <t> .add () otra lista

134

Tengo un IEnumerable<TravelDetails>y estoy tratando de agregar los valles en el forbucle a List<TravelDetails>. Sigo recibiendo los errores.

Error 15 Argumento 1: no se puede convertir de 'System.Collections.Generic.List' a 'TrafficCore.DataObjects.TripDetails' C: \ TrafficNew \ TI 511-Web \ Traffic 2.0 \ 511Traffic \ 511Traffic \ Models \ DrivingTime.cs

Mi código es

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
    }
}

Puede alguien ayudarme con esto.
Gracias pawan

Pawan
fuente
¿Puedes decir en qué línea está el error?
R. Martinho Fernandes
Posible duplicado de Agregar un contenido de Listas a otra Lista C #
Michael Freidgeim

Respuestas:

269

List<T>.Addagrega un solo elemento. En su lugar, use List<T>.AddRangepara agregar múltiples valores.

Además, List<T>.AddRangetoma un IEnumerable<T>, por lo que no necesita convertirlo tripDetailsen a List<TripDetails>, puede pasarlo directamente, por ejemplo:

tripDetailsCollection.AddRange(tripDetails);
Chris Schmich
fuente