Dodawanie listy <t> .add () kolejna lista

134

Mam IEnumerable<TravelDetails>i próbuję dodać wartości w for-pętli do a List<TravelDetails>. Ciągle otrzymuję błędy.

Błąd 15 Argument 1: nie można dokonać konwersji z „System.Collections.Generic.List” do „TrafficCore.DataObjects.TripDetails” C: \ TrafficNew \ TI 511-Web \ Traffic 2.0 \ 511Traffic \ 511Traffic \ Models \ DrivingTime.cs

Mój kod to

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

Czy ktoś może mi w tym pomóc.
Dzięki, Pawan

Pawan
źródło
Czy możesz powiedzieć, w której linii jest błąd?
R. Martinho Fernandes
Możliwy duplikat
dołączenia

Odpowiedzi:

269

List<T>.Adddodaje pojedynczy element. Zamiast tego użyj, List<T>.AddRangeaby dodać wiele wartości.

Dodatkowo List<T>.AddRangebierze an IEnumerable<T>, więc nie musisz konwertować tripDetailsna a List<TripDetails>, możesz go przekazać bezpośrednio, np:

tripDetailsCollection.AddRange(tripDetails);
Chris Schmich
źródło