WuxingRelations

WuxingRelations#

[1]:
#r "nuget:YiJingFramework.EntityRelations"
using YiJingFramework.EntityRelations.EntityStrings.Conversions;
using YiJingFramework.EntityRelations.EntityStrings.Extensions;
using YiJingFramework.EntityRelations.WuxingRelations;
using YiJingFramework.EntityRelations.WuxingRelations.Extensions;
using YiJingFramework.PrimitiveTypes;
Installed Packages
  • YiJingFramework.EntityRelations, 4.0.1

YiJingFramework.EntityRelations.WuxingRelations 命名空间主要五行生克关系,举例而言:

[2]:
var mu = Wuxing.Mu;
var jin = Wuxing.Jin;
var s = $"For {mu}, {jin} is the Wuxing that {mu.GetRelation(jin)}.";
Console.WriteLine(s);

var kesMe = WuxingRelation.KesMe;
s = $"For {mu}, the Wuxing that {kesMe} is {mu.GetWuxing(kesMe)}.";
Console.WriteLine(s);
For Mu, Jin is the Wuxing that KesMe.
For Mu, the Wuxing that KesMe is Jin.

由于 WuxingRelation 是一个枚举类型,它没法重写 ToString 。而专门添加转换中文的扩展方法又感觉有些过于特殊化。关于这个问题,可以使用此包中的 `EntityStrings <./EntityStrings>`__ 来尝试解决,如:

[3]:
var toLiuqin = WuxingRelationToStringConversions.Liuqin;
var mu = Wuxing.Mu;
var jin = Wuxing.Jin;
var s = $"{jin:C}为{mu:C}之{mu.GetRelation(jin).ToString(toLiuqin)}";
Console.WriteLine(s);
金为木之官鬼

另外,虽然五行生克关系一般没有其他取法,但还是把结果列在此处:

同我

生我

我生

克我

我克