我有泛型函数,返回泛型类型的List,但在某些情况下,我想返回类型A的元素的存储列表。我得到“无法隐式转换类型List<A>
到List<tableType>
”:
private List<A> allGroupsHolder = null;
public List<tableType> GetAllObjects<tableType>() where tableType : class
{
if (typeof(tableType) == typeof(Group))
{
if (groupHolderState)
{
groupHolderState = true;
var t = db.GetTable<Group>();
allGroupsHolder = t.ToList();
}
return allGroupsHolder;
}
var table = db.GetTable<tableType>();
return table.ToList();
}
答案 0 :(得分:0)
@MarkH和@Blablablaster通过评论帮我解决了这个问题。
我必须将返回的类型更改为IEnumerable
并使用Cast
private List<A> allGroupsHolder = null;
public IEnumerable<tableType> GetAllObjects<tableType>() where tableType : class
{
if (typeof(tableType) == typeof(Group))
{
if (groupHolderState)
{
groupHolderState = true;
var t = db.GetTable<Group>();
allGroupsHolder = t.ToList();
}
return allGroupsHolder.Cast<tableType>();
}
var table = db.GetTable<tableType>();
return table.ToList();
}
谢谢你们。