Вот как вы это делаете:
if (theArrayList[index] is int) {
// unbox the integer
int x = (int)theArrayList[index];
} else {
// something else
}
Вы можете получить объект Type для объекта, но затем вам следует убедиться, что это не пустая ссылка:
if (theArrayList[index] == null) {
// null reference
} else {
switch (theArrayList[index].GetType().Name) {
case "Int32":
int x = (int)theArrayList[index];
break;
case "Byte":
byte y = (byte)theArrayList[index];
break;
}
}
Обратите внимание, что если вы не застряли в фреймворке 1.x, вам вообще не следует использовать класс ArrayList
. Вместо этого используйте класс List<T>
, где вы должны использовать более конкретный класс, чем Object
, если это возможно.