返回与泛型定义的类型不同的类型 错误:"Cannot implicity convert type List<A> to List<tableType>"



我有返回泛型类型列表的泛型函数,但在某些情况下,我想返回存储的 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();
}

@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();
}

谢谢你们。

相关内容

最新更新