Beispiel #1
0
        public int GetMemberCount(EnumMemberSelection selection)
        {
            switch (selection)
            {
            case EnumMemberSelection.All:
            case EnumMemberSelection.DisplayOrder:
                return(_valueMap.Count + (_duplicateValues?.Count ?? 0));

            default:
                EnumHelper <EnumMemberSelection> .Validate(selection, nameof(selection));

                if (EnumHelper <EnumMemberSelection> .HasAnyFlag(selection, EnumMemberSelection.Flags))
                {
                    return(GetFlagCount());
                }
                return(EnumHelper <EnumMemberSelection> .HasAnyFlag(selection, EnumMemberSelection.Distinct)
                                                                ? _valueMap.Count
                                                                : 0);
            }
        }
        public IEnumerable <EnumMemberInternal <TInt, TIntProvider> > GetMembers(EnumMemberSelection selection)
        {
            IEnumerable <EnumMemberInternal <TInt, TIntProvider> > members;

            switch (selection)
            {
            case EnumMemberSelection.All:
#if DISPLAY_ATTRIBUTE
            case EnumMemberSelection.DisplayOrder:
#endif
                members = _duplicateValues == null ? _valueMap.Values : GetMembersInternal();
                break;

            default:
                selection.Validate(nameof(selection));
                if (selection.HasAnyFlags(EnumMemberSelection.Flags))
                {
                    members = GetFlagMembers(AllFlags);
                }
                else if (selection.HasAnyFlags(EnumMemberSelection.Distinct))
                {
                    members = _valueMap.Values;
                }
                else
                {
                    return(null);
                }
                break;
            }

#if DISPLAY_ATTRIBUTE
            return(selection.HasAnyFlags(EnumMemberSelection.DisplayOrder)
                ? members.OrderBy(member => member.Attributes.Get <DisplayAttribute>()?.GetOrder() ?? int.MaxValue)
                : members);
#else
            return(members);
#endif
        }
        public int GetMemberCount(EnumMemberSelection selection)
        {
            switch (selection)
            {
            case EnumMemberSelection.All:
#if DISPLAY_ATTRIBUTE
            case EnumMemberSelection.DisplayOrder:
#endif
                return(_valueMap.Count + (_duplicateValues?.Count ?? 0));

            default:
                selection.Validate(nameof(selection));
                if (selection.HasAnyFlags(EnumMemberSelection.Flags))
                {
                    return(GetFlagCount());
                }
                if (selection.HasAnyFlags(EnumMemberSelection.Distinct))
                {
                    return(_valueMap.Count);
                }
                return(0);
            }
        }
Beispiel #4
0
        public IEnumerable <EnumMember <TInt, TIntProvider> > GetMembers(EnumMemberSelection selection)
        {
            IEnumerable <EnumMember <TInt, TIntProvider> > members;

            switch (selection)
            {
            case EnumMemberSelection.All:
            case EnumMemberSelection.DisplayOrder:
                members = _duplicateValues == null
                                                                ? _valueMap.Values
                                                                : GetMembersInternal();
                break;

            default:
                EnumHelper <EnumMemberSelection> .Validate(selection, nameof(selection));

                if (EnumHelper <EnumMemberSelection> .HasAnyFlag(selection, EnumMemberSelection.Flags))
                {
                    members = GetFlagMembers(AllFlags);
                }
                else if (EnumHelper <EnumMemberSelection> .HasAnyFlag(selection, EnumMemberSelection.Distinct))
                {
                    members = _valueMap.Values;
                }
                else
                {
                    return(null);
                }

                break;
            }

            return(EnumHelper <EnumMemberSelection> .HasAnyFlag(selection, EnumMemberSelection.DisplayOrder)
                                                ? members.OrderBy(member => member.Attributes.Get <DisplayAttribute>()?.GetOrder() ?? int.MaxValue)
                                                : members);
        }
 /// <summary>
 /// Retrieves <paramref name="enumType"/>'s members' values in increasing value order.
 /// The parameter <paramref name="selection"/> indicates what members to include.
 /// </summary>
 /// <param name="enumType">The enum type.</param>
 /// <param name="selection">Indicates what members to include.</param>
 /// <returns><paramref name="enumType"/>'s members' values in increasing value order.</returns>
 /// <exception cref="ArgumentNullException"><paramref name="enumType"/> is <c>null</c>.</exception>
 /// <exception cref="ArgumentException"><paramref name="enumType"/> is not an enum type
 /// -or-
 /// <paramref name="selection"/> is an invalid value.</exception>
 public static IEnumerable<object> GetValues(Type enumType, EnumMemberSelection selection) => GetInfo(enumType).GetValues(selection);
Beispiel #6
0
 public static IEnumerable <string> GetNames <TEnum>(EnumMemberSelection selection) => Enums.GetNamesUnsafe <TEnum>(selection);
Beispiel #7
0
 public static int GetMemberCount(Type enumType, EnumMemberSelection selection = EnumMemberSelection.All) => GetCache(enumType).GetMemberCount(selection);
Beispiel #8
0
 public IEnumerable <string> GetNames(EnumMemberSelection selection) => _cache.GetNames(selection);
Beispiel #9
0
 public IEnumerable <EnumMember> GetMembers(EnumMemberSelection selection)
 {
     return(SelectEnumMembers(_cache.GetMembers(selection)));
 }
Beispiel #10
0
 public int GetMemberCount(EnumMemberSelection selection) => _cache.GetMemberCount(selection);
Beispiel #11
0
 [NotNull] IEnumerable <Enum> IEnumInfo.GetValues(EnumMemberSelection selection)
 {
     return(GetValues(selection));
 }
Beispiel #12
0
 public int GetCount(EnumMemberSelection selection)
 {
     return(_cache.GetMemberCount(selection));
 }
Beispiel #13
0
 public static IEnumerable <object> GetValues(Type enumType, EnumMemberSelection selection = EnumMemberSelection.All) => GetCache(enumType).GetValues(selection).GetNonGenericContainer();
Beispiel #14
0
 public static IEnumerable <string> GetNames(Type enumType, EnumMemberSelection selection = EnumMemberSelection.All) => GetCache(enumType).GetNames(selection);
Beispiel #15
0
 public static IEnumerable <EnumMember> GetMembers(Type enumType, EnumMemberSelection selection = EnumMemberSelection.All) => GetCache(enumType).GetMembers(selection);
Beispiel #16
0
        IEnumerable <EnumMember> IEnumInfo.GetMembers(EnumMemberSelection selection) => GetMembers(selection)
#if !COVARIANCE
        .Select(member => (EnumMember)member)
#endif
        ;
Beispiel #17
0
 public IEnumerable <string> GetDisplayNames(EnumMemberSelection selection)
 {
     return(_cache.GetDisplayNames(selection));
 }
Beispiel #18
0
 IEnumerable <object> IEnumInfo.GetValues(EnumMemberSelection selection) => SelectEnumObjects(GetValues(selection));
Beispiel #19
0
 public Enum[] GetValues(EnumMemberSelection selection)
 {
     return(SelectEnumValues(_cache.GetValues(selection)));
 }
Beispiel #20
0
 public IEnumerable <EnumMember <TEnum> > GetMembers(EnumMemberSelection selection) => SelectEnumMembers(_cache.GetMembers(selection));
 public IEnumerable <string> GetNames(EnumMemberSelection selection) => GetMembers(selection).Select(member => member.Name);
Beispiel #22
0
 public IEnumerable <TEnum> GetValues(EnumMemberSelection selection) => SelectEnumValues(_cache.GetValues(selection));
Beispiel #23
0
 public static int GetMemberCount <TEnum>(EnumMemberSelection selection) => Enums.GetMemberCountUnsafe <TEnum>(selection);
Beispiel #24
0
 public abstract IEnumerable <TEnum> GetValues(EnumMemberSelection selection = EnumMemberSelection.All);
Beispiel #25
0
 public IEnumerable <string> GetDisplayNames(EnumMemberSelection selection)
 {
     return(GetMembers(selection).Select(member => member.DisplayName));
 }
 public IEnumerable <TInt> GetValues(EnumMemberSelection selection) => GetMembers(selection).Select(member => member.Value);
 /// <summary>
 /// Retrieves <paramref name="enumType"/>'s member count.
 /// The parameter <paramref name="selection"/> indicates what members to include.
 /// </summary>
 /// <param name="enumType">The enum type.</param>
 /// <param name="selection">Indicates what members to include.</param>
 /// <returns><paramref name="enumType"/>'s member count.</returns>
 /// <exception cref="ArgumentNullException"><paramref name="enumType"/> is <c>null</c>.</exception>
 /// <exception cref="ArgumentException"><paramref name="enumType"/> is not an enum type
 /// -or-
 /// <paramref name="selection"/> is an invalid value.</exception>
 public static int GetMemberCount(Type enumType, EnumMemberSelection selection) => GetInfo(enumType).GetMemberCount(selection);
Beispiel #28
0
 public static IEnumerable <EnumMember <TEnum> > GetMembers <TEnum>(EnumMemberSelection selection) => Enums.GetMembersUnsafe <TEnum>(selection);
 /// <summary>
 /// Retrieves <paramref name="enumType"/>'s members in increasing value order.
 /// The parameter <paramref name="selection"/> indicates what members to include.
 /// </summary>
 /// <param name="enumType">The enum type.</param>
 /// <param name="selection">Indicates what members to include.</param>
 /// <returns><paramref name="enumType"/>'s members in increasing value order.</returns>
 /// <exception cref="ArgumentNullException"><paramref name="enumType"/> is <c>null</c>.</exception>
 /// <exception cref="ArgumentException"><paramref name="enumType"/> is not an enum type
 /// -or-
 /// <paramref name="selection"/> is an invalid value.</exception>
 public static IEnumerable<EnumMember> GetMembers(Type enumType, EnumMemberSelection selection) => GetInfo(enumType).GetMembers(selection);
Beispiel #30
0
 public static IEnumerable <TEnum> GetValues <TEnum>(EnumMemberSelection selection) => Enums.GetValuesUnsafe <TEnum>(selection);
 /// <summary>
 /// Retrieves <paramref name="enumType"/>'s members' names in increasing value order.
 /// The parameter <paramref name="selection"/> indicates what members to include.
 /// </summary>
 /// <param name="enumType">The enum type.</param>
 /// <param name="selection">Indicates what members to include.</param>
 /// <returns><paramref name="enumType"/>'s members' names in increasing value order.</returns>
 /// <exception cref="ArgumentNullException"><paramref name="enumType"/> is <c>null</c>.</exception>
 /// <exception cref="ArgumentException"><paramref name="enumType"/> is not an enum type
 /// -or-
 /// <paramref name="selection"/> is an invalid value.</exception>
 public static IEnumerable<string> GetNames(Type enumType, EnumMemberSelection selection) => GetInfo(enumType).GetNames(selection);