C# 不存在显式转换(是否缺少强制转换)

C# 不存在显式转换(是否缺少强制转换),c#,asp.net,C#,Asp.net,我的代码确实有效,但现在它告诉我在返回行中有一个显式转换 public IEnumerable<Contacts> GetAllContacts() { var Contacts = from c in dbc.Contacts select c; return (IEnumerable<Contact>)Contacts; } 您误解了错误消息。实际上有点像 无法将类型System.IEnumerable隐式转换为System.IEnumerable。

我的代码确实有效,但现在它告诉我在返回行中有一个显式转换

public IEnumerable<Contacts> GetAllContacts()
{
    var Contacts = from c in dbc.Contacts select c;
    return (IEnumerable<Contact>)Contacts;
}

您误解了错误消息。实际上有点像

无法将类型System.IEnumerable隐式转换为System.IEnumerable。存在显式转换。是否缺少强制转换

这意味着当方法签名表示IEnumerable时,您正试图返回IEnumerable

编译器说,如果存在转换,可以显式转换为IEnumerable,而不是显式转换


因此,您需要将强制转换更改为IEnumerableContacts,以匹配方法签名和LINQ查询的结果。

您现在发布了两个类似这样的问题。当您得到一个异常时,请包括该异常的名称。告诉我们你的电话号码。你有叫Contacts的课程吗?还有一个名为Contacts的变量?最好不要用同一个名字称呼两个不同的事物。你有两个类:Contact和Contacts。返回类型为IEnumerable,并将其强制转换为IEnumerable。或者,当你把问题贴在上面时,这只是一个打字错误?