C# 无法从System.Collection.Generic.IEnumerable.MyClass隐式转换类型<;节点>;给我的班级<;节点>;

C# 无法从System.Collection.Generic.IEnumerable.MyClass隐式转换类型<;节点>;给我的班级<;节点>;,c#,generics,neo4j,neo4jclient,C#,Generics,Neo4j,Neo4jclient,以下是生成错误的代码: 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用系统文本; 使用Neo4jClient; 使用Neo4jClient.Cypher; 命名空间控制台应用程序1 { 公共类SNode { 公共int shelfid{get;set;} public int floorrid{get;set;} } 公共类路径结果 { 公共IEnumerable节点{get;set;} 公共IEnumerable关系{get;s

以下是生成错误的代码:

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用Neo4jClient;
使用Neo4jClient.Cypher;
命名空间控制台应用程序1
{   
公共类SNode
{
公共int shelfid{get;set;}
public int floorrid{get;set;}
}
公共类路径结果
{
公共IEnumerable节点{get;set;}
公共IEnumerable关系{get;set;}
}
班级计划
{
公共静态路径结果getPath(int-sourceShelfId、int-destinationShelfId、GraphClient客户端)
{
var Pathskyry=
客户,塞弗
.Match(“p=最短路径((src:Node)-[*…150]-(dest:Point)))
.Where((SNode src)=>src.shelfid==sourceShelfId)
.AndWhere((SNode dest)=>dest.shelfid==目的地shelfid)
.Return(p=>newpathsresult
{
Nodes=Return.As(“节点(p)”,
关系=返回.As(“rels(p)”)
});
var res=pathsQuery.Results;
返回res;
}
}
}
我收到的错误是:

无法隐式转换类型System.Collection.Generic.IEnumerable
要控制台应用程序1.PathResult>。存在显式转换,是否缺少强制转换?
据我所知,pathQuery.result应返回单个PathResult对象。然而,我试图根据上述错误进行转换,如下所示:

var res=pathsQuery.Results.AsEnumerable;
现在它给出的新错误是:

无法将方法组分配给隐式类型的局部变量


我哪里出错了?

您有几种可能:

  • getPath
    的返回类型更改为
    IEnumerable…
  • 仅使用查询结果的第一个元素:添加
    .FirstOrDefault()


  • 通常,设置断点并将鼠标放在
    var
    上以检查其类型是一个好主意。在这种情况下,最好避免
    var
    ,让编译器报告所有问题。

    您忘记了括号了吗?var res=pathsQuery.Results.AsEnumerable();是的,他没有提出方法论。错误是说你正试图把
    IEnumerable
    转换成
    X
    。因此,您需要执行类似于
    .First()
    的操作。因为您没有提供完整的错误并告诉我们在哪里发生了这种情况,所以我们不能做太多。@poke:这是完整的错误和完整的程序。我尝试添加括号,现在得到了上一个错误。谢谢,这解决了错误,没有想到使用FirstOrDefault()。我只是好奇,如果我要做一个演员来解决这个错误,我会怎么做?
    var res = pathsQuery.Results.FirstOrDefault();