Adicionando outra lista <t> .add ()

134

Eu tenho um IEnumerable<TravelDetails>e estou tentando adicionar os valores no forloop para a List<TravelDetails>. Eu continuo recebendo os erros.

Erro 15 Argumento 1: não é possível converter de 'System.Collections.Generic.List' para 'TrafficCore.DataObjects.TripDetails' C: \ TrafficNew \ TI 511-Web \ Tráfego 2.0 \ 511Traffic \ 511Traffic \ Models \ DrivingTime.cs

Meu código é

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

Alguém poderia me ajudar com isso.
Obrigado Pawan

Pawan
fonte
Você pode dizer em qual linha está o erro?
R. Martinho Fernandes
Possível duplicado de anexar um listas Conteúdos para outra lista C #
Michael Freidgeim

Respostas:

269

List<T>.Addadiciona um único elemento. Em vez disso, use List<T>.AddRangepara adicionar vários valores.

Além disso, List<T>.AddRangeleva um IEnumerable<T>, para que você não precise se converter tripDetailsem um List<TripDetails>, você pode passá-lo diretamente, por exemplo:

tripDetailsCollection.AddRange(tripDetails);
Chris Schmich
fonte