我尝试使用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
我如何才能取回像(something1
、something2
、something3
、something4
(这样只有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