daily pastebin goal
30%
SHARE
TWEET

EnumValues

a guest Mar 13th, 2018 330 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     // Author contact: piecesof8bitgame@gmail.com
  2.  
  3.     /// <summary>
  4.     /// Helper to create and cache an array of all values of the specified enum type
  5.     /// Avoids constant garbage allocation from evaluating Enum.GetValues every time we want all values
  6.     /// </summary>
  7.     /// <typeparam name="TEnum">Type of an enum to use</typeparam>
  8.     public static class EnumValues<TEnum>
  9.         where TEnum : struct, IComparable, IConvertible, IFormattable
  10.     {
  11.         private static TEnum[] GetValues()
  12.         {
  13.             var values = Enum.GetValues(typeof(TEnum));
  14.  
  15.             var array = new TEnum[values.Length];
  16.             for (var i = 0; i < values.Length; i++)
  17.             {
  18.                 array[i] = (TEnum) values.GetValue(i);
  19.             }
  20.             return array;
  21.         }
  22.  
  23.         // NB: .NET 4.6 only; use a property with a private readonly backing field for .NET 3.5
  24.         public static TEnum[] Values { get; } = GetValues();
  25.     }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top