簡體   English   中英

來自字典和元組的C#隨機值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM