Ajouter une liste <t> .add () une autre liste

134

J'ai un IEnumerable<TravelDetails>et j'essaye d'ajouter les forvaleurs de la boucle à un List<TravelDetails>. Je reçois des erreurs.

Erreur 15 Argument 1: impossible de convertir de «System.Collections.Generic.List» en «TrafficCore.DataObjects.TripDetails» C: \ TrafficNew \ TI 511-Web \ Traffic 2.0 \ 511Traffic \ 511Traffic \ Models \ DrivingTime.cs

Mon code est

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

Quelqu'un peut il m'aider avec ça.
Merci, Pawan

Pawan
la source
Pouvez-vous dire sur quelle ligne se trouve l'erreur?
R. Martinho Fernandes
Copie possible de Ajouter un contenu de listes à une autre liste C #
Michael Freidgeim

Réponses:

269

List<T>.Addajoute un seul élément. Utilisez plutôt List<T>.AddRangepour ajouter plusieurs valeurs.

De plus, List<T>.AddRangeprend un IEnumerable<T>, donc vous n'avez pas besoin de le convertir tripDetailsen un List<TripDetails>, vous pouvez le passer directement, par exemple:

tripDetailsCollection.AddRange(tripDetails);
Chris Schmich
la source