mirror of
https://github.com/ICDSystems/ICD.Common.Utils.git
synced 2026-04-12 12:07:05 +00:00
perf: Simpler HasAnyFlags check, some tidying
This commit is contained in:
parent
1193c8e3bb
commit
b8225b7842
3 changed files with 17 additions and 6 deletions
|
|
@ -25,7 +25,7 @@ namespace ICD.Common.Utils.Collections
|
|||
get
|
||||
{
|
||||
return m_OrderedKeys.Select(k => m_Dictionary[k])
|
||||
.ToArray(Count);
|
||||
.ToArray(m_OrderedKeys.Count);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -419,7 +419,7 @@ namespace ICD.Common.Utils
|
|||
// ReSharper disable once CompareNonConstrainedGenericWithNull
|
||||
throw new ArgumentException(string.Format("{0} is not an enum", value == null ? "NULL" : value.GetType().Name), "value");
|
||||
|
||||
return (int)(object)value != (int)(object)GetNoneValue<T>() && !HasMultipleFlags(value);
|
||||
return HasAnyFlags(value) && !HasMultipleFlags(value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -444,7 +444,7 @@ namespace ICD.Common.Utils
|
|||
[PublicAPI]
|
||||
public static bool HasMultipleFlags(int value)
|
||||
{
|
||||
return ((value & (value - 1)) != 0);
|
||||
return (value & (value - 1)) != 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -455,7 +455,18 @@ namespace ICD.Common.Utils
|
|||
[PublicAPI]
|
||||
public static bool HasAnyFlags<T>(T value)
|
||||
{
|
||||
return GetFlagsExceptNone(value).Any();
|
||||
return HasAnyFlags((int)(object)value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if the enum has any flags set.
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <returns></returns>
|
||||
[PublicAPI]
|
||||
public static bool HasAnyFlags(int value)
|
||||
{
|
||||
return value > 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue