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