I am trying to make a method that returns a name of a card from my Dictionary randomly.
My Dictionary: First defined name of the card which is string and second is the value of that card, which is 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 }
};
Method:
random
is a randomly generated int.
public string getCard(int random)
{
return Karta._dict(random);
}
So the problem is:
Cannot convert from 'int' to 'string'
Anybody helps me how should I do it right to get the name?
If you need to extract an element key based on an index, this function can be used:
public string getCard(int random) { return Karta._dict.ElementAt(random).Key; }
If you need to extract the Key where the element value is equal to the integer generated randomly, you can use the following function:
public string getCard(int random) { return Karta._dict.FirstOrDefault(x => x.Value == random).Key; }
Make sure that you added reference to System.Linq
in your class.
using System.Linq;
Side Note: The first element of the dictionary is The Key and the second is the Value
You can take keys or values per index:
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
you can easily access elements by index , by use System.Linq
Here is the sample
First add using in your class file
using System.Linq;
Then
yourDictionaryData.ElementAt(i).Key
yourDictionaryData.ElementAt(i).Value
Hope this helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With