12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- using UnityEngine;
- using System.Linq;
- using System.Collections;
- using System.Collections.Generic;
- public static class ExtensionDictionary
- {
- public static T2 Random<T1, T2>(this Dictionary<T1, T2> dic, bool remove = false, ExtList.RandomDelegate<T2> randomDelegate = null)
- {
- while (true)
- {
- int index = UnityEngine.Random.Range(0, dic.Count);
- T1 resultKey = dic.Keys.ToList()[index];
- T2 resultValue = dic.Values.ToList()[index];
-
- if (randomDelegate != null)
- {
- if (!randomDelegate(resultValue))
- {
- continue;
- }
- }
- if (remove)
- {
- dic.Remove(resultKey);
- return resultValue;
- }
- else
- {
- return resultValue;
- }
- }
- }
- public static bool UniqueAdd<T1, T2>(this Dictionary<T1, T2> dic, T1 t1, T2 t2)
- {
- if (dic.ContainsKey(t1))
- {
- return false;
- }
- else
- {
- dic.Add(t1, t2);
- return true;
- }
- }
- }
|