public void Setup() { var members = FastEnum.GetMembers <Fruits>(); this.Standard = members.ToDictionary(x => (int)x.Value); this.GenericsKeyFrozen = members.ToFrozenDictionary(x => (int)x.Value); this.IntKeyFrozen = members.ToFrozenIntKeyDictionary(x => (int)x.Value); }
/// <summary> /// Creates instance. /// </summary> /// <param name="name"></param> internal Member(string name) { this.Value = Enum.TryParse <T>(name, out var value) ? value : throw new ArgumentException(nameof(name)); this.Name = name; this.FieldInfo = typeof(T).GetField(name); this.EnumMemberAttribute = this.FieldInfo.GetCustomAttribute <EnumMemberAttribute>(); this.Labels = this.FieldInfo .GetCustomAttributes <LabelAttribute>() .ToFrozenIntKeyDictionary(x => x.Index, x => string.Intern(x.Value)); }