繁体   English   中英

如何从双联体中获取每个源和目标?

[英]How I can get each source and target from doublet of doublets?

我尝试使用 LinksPlatform 的 Doublets 作为我的数据库引擎。

我使用双峰双峰(双峰对):

using System;
using Platform.Data.Doublets;
using Platform.Data.Doublets.Memory.United.Generic;

using var links = new UnitedMemoryLinks<uint>("db.links");
var something1 = links.CreatePoint();
var something2 = links.CreatePoint();
var something3 = links.CreatePoint();
var something4 = links.CreatePoint();
var doubletOfDoublets = links.GetOrCreate(
    links.GetOrCreate(something1, something2),
    links.GetOrCreate(something3, something4)
);
Console.WriteLine(doubletOfDoublets);

此外,您可以在https://dotnetfiddle.net/9Spngz上运行它

我怎样才能找回只有doubletOfDoublets类的东西( something1something2something3something4 )?

要取出链接的内容,您应该使用以下方法:

  • links.GetLink - 获取链接的内容(包括其地址)
  • links.GetSource - 从链接的内容中获取源地址
  • links.GetTarget - 从链接的内容中获取目标地址

请注意, links.GetLink方法在Platform.Data命名空间中可用,因此您也应该添加它。

在这里你可以看到一个完整的例子:

using System;
using Platform.Data;
using Platform.Data.Doublets;
using Platform.Data.Doublets.Memory.United.Generic;

using var links = new UnitedMemoryLinks<uint>("db.links");
var something1 = links.CreatePoint();
var something2 = links.CreatePoint();
var something3 = links.CreatePoint();
var something4 = links.CreatePoint();
var doubletOfDoublets = links.GetOrCreate(
    links.GetOrCreate(something1, something2),
    links.GetOrCreate(something3, something4)
);

var doublet = links.GetLink(doubletOfDoublets);
Console.WriteLine(doublet);

var sourceDoublet = links.GetLink(links.GetSource(doublet));
Console.WriteLine(sourceDoublet);

var targetDoublet = links.GetLink(links.GetTarget(doublet));
Console.WriteLine(targetDoublet);

var result = (
    links.GetSource(sourceDoublet),
    links.GetTarget(sourceDoublet),
    links.GetSource(targetDoublet),
    links.GetTarget(targetDoublet)
);
Console.WriteLine(result);
Console.WriteLine(result.Item1 == something1 &&
                  result.Item2 == something2 &&
                  result.Item3 == something3 &&
                  result.Item4 == something4);

控制台 output 应该是:

(7: 5->6)
(5: 1->2)
(6: 3->4)
(1, 2, 3, 4)
True

您可以在https://dotnetfiddle.net/qdmjcg运行它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM