to make it clear, does below code perform similarly or the latter might be faster? will the CLR cache the loop up result from a dictionary? I know we should use switch in this particular case, but would be good if I can know better what the CLR will do about dictionary look up result caching
foreach (string columnName in csvReader.ReadFields())
{
if (FieldType.Int == fieldTypes[columnName])
{
//do something
}
else if (FieldType.Double == fieldTypes[columnName])
{
//do something
}
else if (FieldType.Datetime == fieldTypes[columnName])
{
//do something
}
.....
.....
.....
}
vs
foreach (string columnName in csvReader.ReadFields())
{
FieldType fieldType = fieldTypes[columnName];
if (FieldType.Int == fieldType )
{
//do something
}
else if (FieldType.Double == fieldType)
{
//do something
}
else if (FieldType.Datetime == fieldType )
{
//do something
}
.....
.....
.....
}