[英]C# random value from dictionary and tuple
我有以下代码,并且需要从字典中获取包含字符串“ Region_1”的随机项目。
public static Dictionary<int, Tuple<string, int, CurrencyType>> ItemArray = new Dictionary<int, Tuple<string, int, CurrencyType>>()
{
{ 0xB3E, new Tuple<string, int, CurrencyType>("Region_1", 1500, CurrencyType.Fame) }
};
public static int GenerateItemID(string ShopID)
{
var GeneratedItem = ItemArray.ElementAt(new Random().Next(0, ItemArray.Count)).Key;
}
我该如何选择?
真的不可能如此高效地完成所有工作...
首先在类级别创建一个静态Random
...如果您在短时间内频繁运行查询,这将防止非随机行为 ...(由离散时钟产生)
static Random rnd = new Random();
然后:
var item = ItemArray.Values
.Where(t => t.Item1 == ShopID)
.OrderBy(_ => rnd.Next())
.FirstOrDefault()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.