J'ai la méthode d'extension suivanteCastings/Conversion de type Performance
public static T Field<T>(this DataRow row, string columnName)
{
return (T)Convert.ChangeType(row[columnName], typeof(T));
}
Il fonctionne, mais je suis en train de l'accélérer. Y a-t-il un moyen d'accélérer cela? Avec une déclaration de cas, puis tapez des conversions spécifiques? J'ai essayé quelques trucs comme utiliser int.Parse, mais même si je sais que je veux un int retourné, je dois utiliser ChangeType pour le compiler.
return (T)Convert.ChangeType(intVal, typeof(T));
@Luke, la conversion en clair ne fonctionne pas toujours, alors que Convert.ChangeType semble toujours renvoyer la valeur correcte quel que soit le type que je lui lance. – CaffGeek
@Chad: Pouvez-vous donner des exemples de cas où la conversion ne fonctionne pas mais que 'ChangeType' le fait? Par exemple, quel est le type/valeur sous-jacent de la colonne et à quel type essayez-vous de le convertir? – LukeH
les types sous-jacents varient, mais ils doivent toujours être convertibles en l'un des suivants: chaîne, int, bool, DateTime, octet, float, décimal. – CaffGeek