码奴蒋老师

码奴蒋老师

    正在检查是否收录...

一、PocoEmit集合扩展中支持字典

  • 支持字典互转
  • 支持数组转字典(索引转化为字典主键)
  • 支持列表转字典(索引转化为字典主键)

默认集合功能不支持实体属性转字典
为此开发了以下字典增强功能来实现实体转字典

二、实体和字典互转

1. ToDictionary

实体成员转化为object字典

User user = new() { Id = 3, Name = "张三" }; IDictionary<string, object> dic = _mapper.ToDictionary(user); 

2. GetToDictionaryFunc

实体成员转化为object字典

var func = _mapper.GetToDictionaryFunc<User>(); User user = new() { Id = 3, Name = "张三" }; IDictionary<string, object> dic = func(user); 

3. FromDictionary

object字典转化为实体

Dictionary<string, object> dic = new() { { nameof(User.Id), "3" }, { nameof(User.Name), "张三" } }; User user = _mapper.FromDictionary<User>(dic); 

4. GetFromDictionaryFunc

object字典转化为实体

var func = _mapper.GetFromDictionaryFunc<User>(); Dictionary<string, object> dic = new() { { nameof(User.Id), "3" }, { nameof(User.Name), "张三" } }; User user = func(dic); 

三、实体属性平铺

1. CreateDictionaryConvertFunc

  • 委托编译生成,重复使用需要缓存
  • 递归转化指定类型成员为字典
  • 支持同类型字典
  • 不支持数组和其他集合
  • 相当于彻底平铺展开
var func = _mapper.CreateDictionaryConvertFunc<Student, Dictionary<string, int>>(); Student source = new() { User = new() { Id = 2, Name = "Jxj" }, Age = 17, Score = new() { { "语文", 95 }, { "数学", 96 } } }; Dictionary<string, int> result = func(source); // result.Count == 4 

6. CreateDictionaryConvertFunc重载方法

  • 委托编译生成,重复使用需要缓存
  • 递归转化指定类型成员为字典
  • 支持同类型字典
  • 不支持数组和其他集合
  • 相当于彻底平铺展开
var func = _mapper.CreateDictionaryConvertFunc<Student, int, IDictionary<string, string>>(); Student source = new() { User = new() { Id = 2, Name = "Jxj" }, Age = 17, Scores = new() { { "语文", 95 }, { "数学", 96 } } }; IDictionary<string, string> result = func(source); // result.Count == 4 

源码托管地址: https://github.com/donetsoftwork/MyEmit ,也欢迎大家直接查看源码。
gitee同步更新:https://gitee.com/donetsoftwork/MyEmit

如果大家喜欢请动动您发财的小手手帮忙点一下Star。

  • 本文作者:WAP站长网
  • 本文链接: https://wapzz.net/post-27837.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
本站部分内容来源于网络转载,仅供学习交流使用。如涉及版权问题,请及时联系我们,我们将第一时间处理。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
2.8W+
9
1
2
WAP站长官方

基于大模型的电信网络诈骗预警技术研究

上一篇

下一代AI Agent: EDA(事件驱动架构)与AI Agent(智能体)的融合

下一篇
评论区
内容为空

这一切,似未曾拥有

  • 复制图片
按住ctrl可打开默认菜单