C#: Impossible de convertir l'objet de type 'System.Int64' en type 'System.Int32'

J'ai le code comme suit:

Dictionary<object, object> dict = ...
Color = (int)dict.GetValue("color");

Quand je convertir la Couleur int, j'obtiens l'exception suivante:

Système.InvalidCastException: Impossible de convertir l'objet de type
'Système.Int64' en type 'System.Int32'.

Je ne sais pas pourquoi je ne peux pas juste lancer à partir d'un long int. Je sais pour un fait que la valeur est inférieure à 0xFFFFFF (24 bits), car c'est une couleur.

J'ai essayé d'utiliser unchecked mais cela n'a pas aide non plus.

L'erreur est l'erreur qui est, même si c'est un peu confus, car (x)expr est un cast ou conversion selon le type d'expression. La correction serait (int)(long)dict.GetValue("color") qui correspond à (conversion)((cast)obj).

OriginalL'auteur Kostub Deshmukh | 2015-07-31