Newbe.ObjectVisitor 0.2.10 发布,更花里胡哨
更新内容
现在,你可以通过上下文修改属性的值了:
//✔️ 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) => {});
基准测试
我们更新了两个基准测试:
FormatString 实现进行了优化,现在 Quick Style 和自己手写 ObjectVisitor 已经几乎没有区别。
使用 ObjectVisitor 来修改属性值的代价约为 1-5 微秒(千分之一毫秒)。
详细的数据可以查看项目首页,此处仅给出图表说明。
场景样例
我们增加了一些可以使用该库实现功能的场景和做法说明:
将数据库链接字符串转型为数据模型,或者将数据模型格式化为链接字符串。
将对象中满足手机号码格式的字段替换为密文,避免敏感信息输出。
将实现了
IEnumerable<int>
的所有属性求和。
Newbe.ObjectVisitor 0.2.10 发布,更花里胡哨相关推荐
- Newbe.ObjectVisitor 0.4.4 发布,模型验证器上线
Newbe.Claptrap 0.4.4 发布,模型验证器上线. 更新内容 完全基于表达式树的模型验证器 本版本,我们带来了基于表达式树实现的模型验证器.并实现了很多内置的验证方法. 我们罗列了与 F ...
- Newbe.Claptrap 0.9.4 发布,全新构建
Newbe.Claptrap 0.9.4 发布,全新构建,全新内容,全新体验. 简介 此次的版本更新虽然只是一个副版本更新.但实际上我们带来了非常多全新的内容.全方位将本框架带入到一个新的次代.我们希 ...
- Newbe.Claptrap 0.10.2 发布,Blazor 演示
Newbe.Claptrap 0.10.2 发布,我们为项目模板引入了 Minion 以及 Blazor 制作的交互界面. 更新内容 类库常规升级 升级了相关的所有类库至最新版本.包括 Dapr SD ...
- 腾讯、火绒回应“QQ 读取浏览器历史记录”;字节跳动起诉百度获赔 40 元;Redis 6.0.10 发布 | 极客头条...
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 丁恩华 出品 | CSDN(ID:CSDNnews ...
- 服务器安全股v4.0正式版发布 防火墙效能更强
2019独角兽企业重金招聘Python工程师标准>>> 6月24日,服务器安全狗v4.0正式版发布. 超强驱动,全线优化 服务器安全狗全方位兼容驱动V2.0震撼上线,由内而外全面提高 ...
- WasmEdge 0.9.1 发布:更佳 networking 支持与开发者体验、安卓支持
WasmEdge 0.9.1 发布! 更好的 networking 支持与开发者体验.安卓支持 WasmEdge 0.9.1 发布了!此版本集成了高性能 networking.JavaScript 流 ...
- 鸿蒙全面屏手机,华为10月17日将发布更有创新性的全面屏手机,搭载鸿蒙系统...
原标题:华为10月17日将发布更有创新性的全面屏手机,搭载鸿蒙系统 今日有消息称,华为将在10月17日有大动作:或发首款搭载鸿蒙系统手机.继Mate 30系列之后,华为手机将再度预告,10月17日推出 ...
- StartOS 5.0 正式版发布
StartOS 5.0正式版发布了. StartOS -- 是由东莞瓦力网络科技有限公司发行的开源操作系统,符合国人的使用习惯,预装常用的精品软件,操作系统具有运行速度快,安全稳定,界面美观,操作简洁 ...
- 漫画:为什么程序员喜欢使用 0 ≤ i 10 左闭右开形式写 for 循环?
作者 | 漫话编程 来源 | 漫话编程(ID:mhcoding) 当我们想要写一个循环体,期望执行10次的时候,我们会使用以下方式: for (int i=0; i<10; i++){} 可以看 ...
最新文章
- 协程的概念及Python中利用第三方库gevent使用协程
- 鸿蒙系统真实评测,鸿蒙系统和安卓的区别-华为鸿蒙系统使用体验评测
- VTK:InfoVis之GraphPoints
- 面试题7:重建二叉树
- 关于多线程的一点补充
- 微信小程序 js部分语法
- 计算机北桥芯片结构图,电脑主板芯片维修教程第一节:电脑主板你是否真的认识...
- 选课系统 mysql_「选课系统」我的数据库大作业——学生选课系统实现(准备) - seo实验室...
- 系统架构设计笔记(80)—— .NET
- 苹果电脑QQ邮件服务器,苹果邮件设置qq邮箱的步骤_苹果电脑自带邮件怎么设置qq邮箱-win7之家...
- flash花屏 html,Flash中轻松制作电视花屏闪屏的效果
- Win10系统更新后开机密码错误怎么解决?
- reactos操作系统实现(39)
- 老调重弹之ffmpeg解码音频
- 读史蒂芬·利维《黑客:计算机革命的英雄》
- STM32输出PWM信号(库函数版本)
- 数据仓库3_ETL_数据清洗/装载
- js二次弹窗确认的使用
- idea部署项目tomcat黄叉
- 黑马程序员--- c语言基础--基本语法
热门文章
- docker swarm的应用----docker集群的构建
- JmsTemplate sendAndReceive 设置超时
- 使用jquery+css实现瀑布流布局
- SpringMVC接受JSON参数详解及常见错误总结我改
- 架构师速成4.6-软技能和硬技能
- Greenplum使用简明手册
- C语言学习笔记--函数与指针
- Xcode 8 GM 编译缺失 /Users/usr/lib/libresolv.9.dylib
- chemdraw怎么连接两个结构_利用神经结构搜索构建快速准确轻量级的超分辨率网络...
- Teams Bot开发系列:初识Bot