c# - C# 中 forAch 循环中 lambda 表达式的性能评估
问题描述
我的程序中有以下代码:此代码将遍历数十万条记录,因此我需要查看它是否可以改进:
private void FillObjectTypes(Type type, ElementMapping mapping )
{
foreach (var fieldMapping in mapping.FieldMappings.Values.Where(mpng => mpng.ConversionType == ConversionType.InferFromPropertyType))
{
fieldMapping.PropertyType = ReflectionUtils.GetPropertyType(type, fieldMapping.PropertyName);
}
mapping.FieldMappingsTypesSet = true;
}
任何改进代码的想法都将受到高度赞赏。我的主要问题是 lambda 表达式将如何影响性能。
以及下面的反射代码:
public static Type GetPropertyType(Type objectType, string propertyName)
{
CheckCache(objectType);
try
{
return propertiesByType[objectType][propertyName].PropertyType;
}
catch(KeyNotFoundException excp)
{
throw new KeyNotFoundException($"Failed to find property:'{propertyName}' in object type:'{objectType.Name}'",excp);
}
}
解决方案
推荐阅读
- javascript - 如何一次定义很多变量
- ruby-on-rails - systemd脚本中的`bundle:找不到命令`
- django - 编辑更新除 Django Rest Framework 中的主键之外的所有计划
- c++ - 警告 C4267“正在初始化”:从“size_t”转换为“DWORD”,可能丢失数据
- java - 使用 JSP 动态创建 JNLP 文件时,Eclipse 中出现未知标记 jnlp 警告
- python - AWS EC2 实例似乎从用户数据运行错误的 python 版本
- oracle - WebLogic 的 Hibernate JNDI 查找抛出无法解决
- windows - 测试窗口是否响应
- reactjs - 如何使用 React js 在下拉菜单中的选择选项上显示不同的组件
- sql - 从序列中立即删除重复步骤并保留一个实例