IQueryable<T> IS3Repository.FindAllBuckets<T>()
{
IQueryable<object> list = _repository.GetAllBuckets().Cast<object>().AsQueryable();
return list == null ? default(T) : (T)list;
}
这是错误: 错误 3 无法将类型“T”隐式转换为“System.Linq.IQueryable”。存在显式转换(是否缺少强制转换?)
我正在实现这个接口(interface):
IQueryable<T> FindAllBuckets<T>();
问题是什么?
这是我试过的:
-
IQueryable<T> IS3Repository.FindAllBuckets<T>() { IQueryable<object> list = _repository .GetAllBuckets() .Cast<object>().AsQueryable(); return list == null ? list.DefaultIfEmpty().AsQueryable() : list; }
最佳答案
您正在转换 list
至 T
但是FindAllBuckets
的返回值类型为 IQueryable<T>
.
取决于 _repository.GetAllBuckets()
的返回类型,这应该有效:
IQueryable<T> IS3Repository.FindAllBuckets<T>()
{
return _repository.GetAllBuckets()
.Cast<T>()
.AsQueryable();
}
关于c# - 为什么 Generic Casting 不适用于这部分代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1436385/