我有两行代码,一个是
AllItems().Where(c => c.Id== id)
.Select(d => new Quality(d.QualityType)).ToList();
和另一个
AllItems().Where(c => c.Id== id).ToList()
.Select(d => new Quality(d.QualityType)).ToList();
唯一的区别是第二条语句ToList()
是在语句之后调用的Where
。第二条语句工作得很好。
在第一条语句中,默认的无参数构造函数被命中,而不是带有参数的构造函数。因此创建了列表,但列表中的对象使用默认值而不是 d.QualityType 进行初始化。
您可以在(方法:GetBestQualityInHistory)查看相关文件的完整来源
https://github.com/kayone/NzbDrone/blob/master/NzbDrone.Core/Providers/HistoryProvider.cs
**编辑:经过进一步调查,这似乎是一个亚音速错误,如果 LastToList
被OrderBy
亚音速替换,则会抛出The construtor 'Void .ctor(NzbDrone.Core.Repository.Quality.QualityTypes, Boolean)' is not supported
.