Hice una enumeración y traté de revisarlo con for-each loop y busqué diferentes casos usando switch case y obtuve los valores de las inmersiones utilizadas. ERROR QUE ESTOY OBTENIENDO IS no puede convertir implícitamente type'console5.typeOfDevice' a 'string'
enum typeOfDevice { iphone=99, android=59, tablet=49 } var usedDevice = Enum.GetNames(typeof(typeOfDevice)); foreach (string used in usedDevice) { switch (used) { case usedDevice.iphone: //gets error here Console.Write($"enter how many time you used Iphone"); var input = Console.ReadLine(); break; case usedDevice.android: Console.Write($"enter how many time you used Android"); var input = Console.ReadLine(); break; case usedDevice.tablet: Console.Write($"enter how many time you used Tablet"); var input = Console.ReadLine(); break; default: break; } }Enum.GetNames devuelve una matriz de cadenas . En su ciclo, está tratando de obtener usedDevice.iphone (etc) pero usedDevice es una matriz de cadenas, por lo tanto, obtendrá un error. Sin embargo, si cambia usedDevice a typeOfDevice , obtendrá el error de comparación que ha editado en su pregunta.
Es decir, used es de tipo cadena y no se puede convertir implícitamente a typeOfDevice , ya que typeOfDevice es una enumeración y no una cadena.
Esta pregunta puede serle útil . En resumen, use GetValues sobre GetNames