EnumExts.cs 549 B

123456789101112131415161718
  1. using qdr.fnd.core.pqueue.Enums;
  2. namespace qdr.fnd.core.pqueue
  3. {
  4. public static class EnumExt
  5. {
  6. private static readonly Random _random = new Random();
  7. public static TEnumValue GetRandom<TEnumValue>(this Enum value) where TEnumValue : Enum
  8. {
  9. var values = Enum.GetValues(typeof(TEnumValue));
  10. var result = values.GetValue(_random.Next(values.Length));
  11. if (result is null)
  12. return default!;
  13. return (TEnumValue)result;
  14. }
  15. }
  16. }