EntityStrings

EntityStrings#

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

YiJingFramework.EntityRelations.EntityStrings 命名空间主要提供易学实体到字符串的转换。举例而言:

[2]:
var toShengxiao = DizhiToStringConversions.Shengxiao;
Tiangan yearGan = Tiangan.Gui;
Dizhi yearZhi = Dizhi.Mao;
var s = $"{yearGan:C}{yearZhi:C}{yearZhi.ToString(toShengxiao)}年";
Console.WriteLine(s);

var toChinese = WuxingRelationToStringConversions.InChinese;
var toLiuqin = WuxingRelationToStringConversions.Liuqin;
WuxingRelation relation = WuxingRelation.ShengsMe;
s = $"{relation.ToString(toChinese)}为{relation.ToString(toLiuqin)}";
Console.WriteLine(s);
癸卯兔年
生我为父母

实际上,直接调用 toShengxiao(yearZhi) 也有一样的效果,只是写成 ToString 的形式更加好看一些。此外,也支持自己定义转换:

[3]:
EntityToStringConversion<object> myConversation = (object x) => $"{x.GetType().Name}[{x}]";
Console.WriteLine("Hello World".ToString(myConversation));
Console.WriteLine(23.ToString(myConversation));
String[Hello World]
Int32[23]