การเพิ่มรายการ <t> .add () รายการอื่น


138

ฉันมีIEnumerable<TravelDetails>และฉันกำลังพยายามเพิ่ม vales ในfor-loop ไปที่ไฟล์List<TravelDetails>. ฉันได้รับข้อผิดพลาด

ข้อผิดพลาด 15 อาร์กิวเมนต์ 1: ไม่สามารถแปลงจาก 'System.Collections.Generic.List' เป็น 'TrafficCore.DataObjects.TripDetails' C: \ TrafficNew \ TI 511-Web \ Traffic 2.0 \ 511Traffic \ 511Traffic \ Models \ 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
    }
}

มีใครช่วยฉันได้บ้าง
ขอบคุณ Pawan


คุณบอกได้ไหมว่าข้อผิดพลาดในบรรทัดใด
R.Martinho Fernandes

คำตอบ:


279

List<T>.Addเพิ่มองค์ประกอบเดียว ให้ใช้List<T>.AddRangeเพื่อเพิ่มหลายค่าแทน

นอกจากนี้List<T>.AddRangeต้องใช้เวลาIEnumerable<T>ดังนั้นคุณไม่จำเป็นต้องแปลงtripDetailsเป็น a List<TripDetails>คุณสามารถส่งต่อได้โดยตรงเช่น:

tripDetailsCollection.AddRange(tripDetails);
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.