更新内容

现在,你可以通过上下文修改属性的值了:

//✔️ from 0.2
// 可以修改属性
o.V().ForEach((context) => ModifyData(context)).Run();public static void ModifyData(IObjectVisitorContext<Yueluo,string> context)
{context.Value = context.Value.SubString(0,1);
}

现在,支持多次 ForEach 操作:

// ✔️ from 0.2
// 多重 foreach
o.V().ForEach((context)=>{}).ForEach((context)=>{}).Run();

现在,支持更多花里胡哨的属性条件判断:

//✔️ from 0.2
// 遍历指定类型的属性
o.V().ForEach<Yueluo, string>((context) => {});
// 和上一条完全一样
o.V().ForEach<Yueluo, string>((context) => {}, x => x.PropertyType == typeof(string));
// 遍历被标记了 RequiredAttribute 的 string 属性
o.V().ForEach<Yueluo, string>((context) => {}, x => x.PropertyType == typeof(string) && x.GetCustomAttribute<RequiredAttribute>());
// 遍历“是”或者实现了 IEnumerable<int> 接口的属性, 例如 List<int>, int[], IEnumerable<int>, HashSet<int> 等等。
o.V().ForEach<Yueluo, IEnumerable<int>>((context) => {}, x => x.IsOrImplOf<IEnumerable<int>>());
// 指定属性类型,并包含一个扩展的参数
o.V().WithExtendObject<Yueluo, StringBuilder>().ForEach<Yueluo, StringBuilder, string>((context) => {});

基准测试

我们更新了两个基准测试:

  1. FormatString 实现进行了优化,现在 Quick Style 和自己手写 ObjectVisitor 已经几乎没有区别。

  2. 使用 ObjectVisitor 来修改属性值的代价约为 1-5 微秒(千分之一毫秒)。

详细的数据可以查看项目首页,此处仅给出图表说明。

FormatString

MOdifyData

场景样例

我们增加了一些可以使用该库实现功能的场景和做法说明:

  • 将数据库链接字符串转型为数据模型,或者将数据模型格式化为链接字符串。

  • 将对象中满足手机号码格式的字段替换为密文,避免敏感信息输出。

  • 将实现了 IEnumerable<int> 的所有属性求和。

Newbe.ObjectVisitor 0.2.10 发布,更花里胡哨相关推荐

  1. Newbe.ObjectVisitor 0.4.4 发布,模型验证器上线

    Newbe.Claptrap 0.4.4 发布,模型验证器上线. 更新内容 完全基于表达式树的模型验证器 本版本,我们带来了基于表达式树实现的模型验证器.并实现了很多内置的验证方法. 我们罗列了与 F ...

  2. Newbe.Claptrap 0.9.4 发布,全新构建

    Newbe.Claptrap 0.9.4 发布,全新构建,全新内容,全新体验. 简介 此次的版本更新虽然只是一个副版本更新.但实际上我们带来了非常多全新的内容.全方位将本框架带入到一个新的次代.我们希 ...

  3. Newbe.Claptrap 0.10.2 发布,Blazor 演示

    Newbe.Claptrap 0.10.2 发布,我们为项目模板引入了 Minion 以及 Blazor 制作的交互界面. 更新内容 类库常规升级 升级了相关的所有类库至最新版本.包括 Dapr SD ...

  4. 腾讯、火绒回应“QQ 读取浏览器历史记录”;字节跳动起诉百度获赔 40 元;Redis 6.0.10 发布 | 极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 丁恩华 出品 | CSDN(ID:CSDNnews ...

  5. 服务器安全股v4.0正式版发布 防火墙效能更强

    2019独角兽企业重金招聘Python工程师标准>>> 6月24日,服务器安全狗v4.0正式版发布. 超强驱动,全线优化 服务器安全狗全方位兼容驱动V2.0震撼上线,由内而外全面提高 ...

  6. WasmEdge 0.9.1 发布:更佳 networking 支持与开发者体验、安卓支持

    WasmEdge 0.9.1 发布! 更好的 networking 支持与开发者体验.安卓支持 WasmEdge 0.9.1 发布了!此版本集成了高性能 networking.JavaScript 流 ...

  7. 鸿蒙全面屏手机,华为10月17日将发布更有创新性的全面屏手机,搭载鸿蒙系统...

    原标题:华为10月17日将发布更有创新性的全面屏手机,搭载鸿蒙系统 今日有消息称,华为将在10月17日有大动作:或发首款搭载鸿蒙系统手机.继Mate 30系列之后,华为手机将再度预告,10月17日推出 ...

  8. StartOS 5.0 正式版发布

    StartOS 5.0正式版发布了. StartOS -- 是由东莞瓦力网络科技有限公司发行的开源操作系统,符合国人的使用习惯,预装常用的精品软件,操作系统具有运行速度快,安全稳定,界面美观,操作简洁 ...

  9. 漫画:为什么程序员喜欢使用 0 ≤ i 10 左闭右开形式写 for 循环?

    作者 | 漫话编程 来源 | 漫话编程(ID:mhcoding) 当我们想要写一个循环体,期望执行10次的时候,我们会使用以下方式: for (int i=0; i<10; i++){} 可以看 ...

最新文章

  1. 协程的概念及Python中利用第三方库gevent使用协程
  2. 鸿蒙系统真实评测,鸿蒙系统和安卓的区别-华为鸿蒙系统使用体验评测
  3. VTK:InfoVis之GraphPoints
  4. 面试题7:重建二叉树
  5. 关于多线程的一点补充
  6. 微信小程序 js部分语法
  7. 计算机北桥芯片结构图,电脑主板芯片维修教程第一节:电脑主板你是否真的认识...
  8. 选课系统 mysql_「选课系统」我的数据库大作业——学生选课系统实现(准备) - seo实验室...
  9. 系统架构设计笔记(80)—— .NET
  10. 苹果电脑QQ邮件服务器,苹果邮件设置qq邮箱的步骤_苹果电脑自带邮件怎么设置qq邮箱-win7之家...
  11. flash花屏 html,Flash中轻松制作电视花屏闪屏的效果
  12. Win10系统更新后开机密码错误怎么解决?
  13. reactos操作系统实现(39)
  14. 老调重弹之ffmpeg解码音频
  15. 读史蒂芬·利维《黑客:计算机革命的英雄》
  16. STM32输出PWM信号(库函数版本)
  17. 数据仓库3_ETL_数据清洗/装载
  18. js二次弹窗确认的使用
  19. idea部署项目tomcat黄叉
  20. 黑马程序员--- c语言基础--基本语法

热门文章

  1. docker swarm的应用----docker集群的构建
  2. JmsTemplate sendAndReceive 设置超时
  3. 使用jquery+css实现瀑布流布局
  4. SpringMVC接受JSON参数详解及常见错误总结我改
  5. 架构师速成4.6-软技能和硬技能
  6. Greenplum使用简明手册
  7. C语言学习笔记--函数与指针
  8. Xcode 8 GM 编译缺失 /Users/usr/lib/libresolv.9.dylib
  9. chemdraw怎么连接两个结构_利用神经结构搜索构建快速准确轻量级的超分辨率网络...
  10. Teams Bot开发系列:初识Bot