remarks - see cref c#
Diccionario C#obtener artículo por índice (3)
Estoy tratando de hacer un método que devuelva un nombre de tarjeta de mi diccionario al azar.
Mi diccionario: el primer nombre definido de la tarjeta que es la cadena y el segundo es el valor de esa tarjeta, que es int.
public static Dictionary<string, int> _dict = new Dictionary<string, int>()
{
{"7", 7 },
{"8", 8 },
{"9", 9 },
{"10", 10 },
{"J", 1 },
{"Q", 1 },
{"K", 2 },
{"A", 11 }
};
Método: aleatorio es aleatorio generado int.
public string getCard(int random)
{
return Karta._dict(random);
}
Entonces el problema es:
No se puede convertir de ''int'' a ''string''
¿Alguien me ayuda? ¿Cómo debo hacerlo bien para obtener el nombre?
Puedes tomar claves o valores por índice:
int value = _dict.Values.ElementAt(5);//ElementAt value should be <= _dict.Count - 1
string key = _dict.Keys.ElementAt(5);//ElementAt value should be < =_dict.Count - 1
Su clave es una cadena y su valor es un int. Tu código no funcionará porque no puede buscar el int aleatorio que pasaste. Además, por favor proporcione el código completo
Esto devolverá la clave correspondiente al valor int generado aleatoriamente.
public string getCard(int random)
{
return Karta._dict.FirstOrDefault(x => x.Value == random).Key;
}
Esto devolverá la clave correspondiente al índice int generado aleatoriamente.
public string getCard(int random)
{
return Karta._dict.ElementAt(random).Key;
}
Nota al margen: que el primer elemento del diccionario es la clave y el segundo es el valor