0
すべての送信エッジを通過してオブジェクトのコレクションを取得する必要があります。エッジとそれに付随する頂点。 教えてください:この繰り返しを実行するには?オブジェクトのコレクションを取得する方法<edge、vertex> .NET Cypher vs. C#
すべての送信エッジを通過してオブジェクトのコレクションを取得する必要があります。エッジとそれに付随する頂点。 教えてください:この繰り返しを実行するには?オブジェクトのコレクションを取得する方法<edge、vertex> .NET Cypher vs. C#
質問はスーパー明確ではないが、ガボールは言及したように、あなたは結果を反復処理するために探しているなら、あなたはforeach
を使用し、すなわち:
var results = Parse("word");
foreach(var ev in results){
//Do something with ev
}
あなたが均等にfor
ループを使用することができます - しかし、あなたは結果を.ToList()
する必要があるだろう:
var results = Parse("word").ToList();
for(int i = 0; i < results.Count; i++){
//Do something with results[i]
}
あなたcypher
は最初のオフ、チューニングのビットの恩恵を受ける - OptionalMatch
を使用する必要はありません - あなたがに結果を必要としますとにかく何も返ってこないだろう。また、少なくともa
ノードでは、多種多様のlabel
を使用する必要があります。また、サーバーからさらにパフォーマンスを得るには、parameters
を使用する必要があります。これはかなり長時間実行するつもりされている任意の大きなグラフで
public IEnumerable<EdVeObj> Parse(string word)
{
var res = graphClient.Cypher
.Match("(:YOUR_LABEL_HERE {name:$word})-[r]->(b)")
.WithParam("word", word)
.Return((r, b) => new EdVeObj
{
RelUp = r.As<Edge>(),
Target = b.<Vertex>()
})
.Results;
return res;
}
:私はあなたのコードを変更します
/
'パース()'メソッドはあなたを与えるし、[ 'IEnumerable'] (https://msdn.microsoft.com/en-us/library/system.collections.ienumerable(v=vs.110).aspx)、結果を簡単に取得して反復する必要があります。 foreachループを使用します。 –