从数据库中,我得到的结果为System.Collections.Generic.IEnumerable<CustomObject>。将结果放入List<CustomObject>可以完美地工作。现在,我只想获取前n个对象。这是我尝试过的:

List<CustomObject> tempList = DataBase.GetAllEntries().Cast<CustomObject>().ToList();
tempList = tempList.Take(5);


在第二行,我得到

Error   CS0266  Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<CustomObject>' to 'System.Collections.Generic.List<CustomObject>'. An explicit conversion exists (are you missing a cast?)


我还尝试添加OrderBy(),仅使用ToList()(无强制转换)或其组合,但是每次遇到上述错误时,我都会尝试添加。我应该改变什么?

最佳答案

Take放在实现(ToList)之前:

List<CustomObject> tempList = DataBase.GetAllEntries()
  .Take(5)
  .Cast<CustomObject>()
  .ToList();


让物化是最后的操作。

10-08 16:36