Подтвердить что ты не робот

Словарь С# получить элемент по индексу

Я пытаюсь сделать метод, который возвращает название карты из моего словаря в случайном порядке.

Мой словарь: первое определенное имя карты, которое является строкой, а второе - это значение этой карты, которое является 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 }
    };

Метод: случайный случайным образом генерируется Int.

    public string getCard(int random)
    {
        return Karta._dict(random);
    }

Итак, проблема в том, что:

Невозможно преобразовать из int в строку

Кто-нибудь помочь мне, как я должен сделать это правильно, чтобы получить имя?

4b9b3361

Ответ 1

Это вернет ключ, соответствующий значению int, сгенерированному случайным образом

public string getCard(int random)
{
    return Karta._dict.FirstOrDefault(x => x.Value == random).Key;
}

Это вернет ключ, соответствующий индексу int, сгенерированному случайным образом

public string getCard(int random)
{
    return Karta._dict.ElementAt(random).Key;
}

Примечание: что первым элементом словаря является Ключ, а вторым - Значение.

Ответ 2

Вы можете взять ключи или значения для индекса:

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

Ответ 3

Ваш ключ - это строка, а ваше значение - int. Ваш код не будет работать, потому что он не может найти случайный ввод, который вы передадите. Кроме того, предоставьте полный код