我有以下扩展方法
public static T Field<T>(this DataRow row, string columnName)
{
return (T)Convert.ChangeType(row[columnName], typeof(T));
}
它有效,但我正在努力加快速度。有没有办法加快速度?使用case语句然后键入特定的转换?我尝试了一些像使用int.Parse的东西,但即使我知道我想要返回一个int,我也必须使用ChangeType来编译它。
return (T)Convert.ChangeType(intVal, typeof(T));
答案 0 :(得分:4)
你真的需要进行转换,还是只是在施法?
如果你只需要一个演员表,那么一个简单的return (T)row[columnName];
就可以了。
(顺便说一下,使用Convert.ChangeType
真的会导致性能问题吗?这对我来说听起来像是不必要的微优化。话虽如此,我可能更喜欢普通的强制转换,以便于阅读,假设它符合你的要求。)