如何从一个或多个二重集中获取每个源和目标



我尝试使用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

我如何才能取回像(something1something2something3something4(这样只有doubletOfDoublets的东西?

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

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

控制台输出应为:

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

你可以在https://dotnetfiddle.net/qdmjcg

最新更新