我有一个IEnumerable<TravelDetails>,我正在try 将for循环中的值添加到List<TravelDetails>.我不断地犯错误.

错误15参数1:无法从‘System.Collections.Generic.List’转换为‘TrafficCore.DataObjects.TripDetails’C:\TrafficNew\TI511-WEB\TrafficCore.DataObjects.TripDetails‘C:\TrafficNew\TI511-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
    }
}

有人能帮我这个忙吗?
谢谢, 巴湾

推荐答案

List<T>.Add添加一个元素.相反,使用List<T>.AddRange可以添加多个值.

此外,List<T>.AddRange需要IEnumerable<T>,因此您不需要将tripDetails转换为List<TripDetails>,您可以直接传递它,例如:

tripDetailsCollection.AddRange(tripDetails);

.net相关问答推荐

CustomControl 计算自己的宽度和高度 - 使用 bounds.Height=0 调用 ArrangeOverride

当 Func 委托需要接口作为参数时,它是如何工作的?

无法实例化类的代理:System.Net.HttpWebRequest.找不到无参数构造函数

C# 事件是同步的吗?

if (false == true) 在内部抛出异常时执行块

我可以先使用 EF 代码和 .net 核心生成迁移脚本吗

ASP.NET Core (.NET Core) 和 ASP.NET Core (.NET Framework) 的区别

没有科学记数法的双精度字符串转换

如何下载没有 nuget.exe 或 Visual Studio 扩展的 Nuget 包?

判断 HttpStatusCode 是代表成功还是失败

Visual Studio 2015 中的共享项目和类库有什么区别?

关于 Task.Start() 、 Task.Run() 和 Task.Factory.StartNew() 的使用

写入 Windows 应用程序事件日志(log)

CryptographicException 未处理:系统找不到指定的文件

Windows 更新导致 MVC3 和 MVC4 停止工作

运行多个异步任务并等待它们全部完成

Owin Twitter登录-根据验证程序远程证书无效

NuGetPackageImportStamp 有什么用?

从数据读取器填充数据表

C# 属性实际上是方法吗?