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);
金为木之官鬼
另外,虽然五行生克关系一般没有其他取法,但还是把结果列在此处:
木 |
火 |
土 |
金 |
水 |
|
|---|---|---|---|---|---|
同我 |
木 |
火 |
土 |
金 |
水 |
生我 |
水 |
木 |
火 |
土 |
金 |
我生 |
火 |
土 |
金 |
水 |
木 |
克我 |
金 |
水 |
木 |
火 |
土 |
我克 |
土 |
金 |
水 |
木 |
火 |