c#从字典和元组中随机获取值

本文关键字:随机 获取 元组 字典 | 更新日期: 2023-09-27 18:07:10

我有以下代码,并且需要从字典中获得包含字符串"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;
}

我如何选择这个?

c#从字典和元组中随机获取值

这样做是不可能的…

首先在类级别创建一个静态的Random…如果您在短时间内频繁运行查询,这将防止非随机行为……(它是从一个离散的时钟播种的)

static Random rnd = new Random();

:

var item = ItemArray.Values
   .Where(t => t.Item1 == ShopID)
   .OrderBy(_ => rnd.Next())
   .FirstOrDefault()