10[DebuggerDisplay(
"Count = {Count}")]
11[
TypeForwardedFrom(
"System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
16 public T
Item {
get;
set; }
60 return node?.IsRed ??
false;
65 return node?.IsBlack ??
true;
93 while (stack.
Count != 0)
113 bool flag =
Left == current;
321 _tree.VersionCheck();
399 T result =
default(T);
425 T result =
default(T);
540 while (stack.
Count != 0)
548 while (
node2 !=
null)
721 while (left.
Left !=
null)
740 while (right.
Right !=
null)
788 for (
int i = 1; i <
length; i++)
852 while (stack.
Count != 0)
854 Node left = stack.Pop();
882 if (
node.Left !=
null)
886 if (
node.Right !=
null)
1009 node2.RotateRight();
1023 node2.Merge2Nodes();
1119 if (
array.Rank != 1)
1123 if (
array.GetLowerBound(0) != 0)
1231 while (
node !=
null)
1247 while (
node !=
null)
1255 num = ((
num2 < 0) ? (2 * num + 1) : (2 * num + 2));
1263 while (
node !=
null)
1299 return set2 ==
null;
1369 while (!flag && !
flag2)
1389 if (!flag || !
flag2)
1427 node.Right.ColorRed();
1610 for (
int i = 0; i <
count; i++)
1774 while (!flag && !
flag2)
1783 return flag &&
flag2;
1882 matches.Add(n.Item);
1961 for (
int i = 0; i <
array.Length; i++)
static void Sort(Array array)
IEqualityComparer< TKey > Comparer
bool ICollection< KeyValuePair< TKey, TValue > >. Remove(KeyValuePair< TKey, TValue > keyValuePair)
bool ICollection< KeyValuePair< TKey, TValue > >. Contains(KeyValuePair< TKey, TValue > keyValuePair)
bool ICollection< KeyValuePair< TKey, TValue > >. IsReadOnly
Enumerator GetEnumerator()
void Add(TKey key, TValue value)
Node(T item, NodeColor color)
static bool IsNullOrBlack(Node node)
TreeRotation GetRotation(Node current, Node sibling)
Node Rotate(TreeRotation rotation)
Node DeepClone(int count)
static bool IsNonNullRed(Node node)
Node GetSibling(Node node)
void ReplaceChild(Node child, Node newChild)
override int TotalCount()
override void VersionCheck(bool updateCount=false)
override bool BreadthFirstTreeWalk(TreeWalkPredicate< T > action)
void VersionCheckImpl(bool updateCount)
override int InternalIndexOf(T item)
override SortedSet< T > GetViewBetween(T lowerValue, T upperValue)
override bool DoRemove(T item)
override void GetObjectData(SerializationInfo info, StreamingContext context)
readonly bool _lBoundActive
TreeSubSet(SortedSet< T > Underlying, T Min, T Max, bool lowerBoundActive, bool upperBoundActive)
override bool Contains(T item)
void ISerializable. GetObjectData(SerializationInfo info, StreamingContext context)
override bool IsWithinRange(T item)
override bool InOrderTreeWalk(TreeWalkPredicate< T > action)
readonly SortedSet< T > _underlying
override bool AddIfNotPresent(T item)
readonly bool _uBoundActive
override Node FindNode(T item)
override void OnDeserialization(object sender)
bool ContainsAllElements(IEnumerable< T > collection)
SortedSet(IEnumerable< T > collection, IComparer< T >? comparer)
bool SetEquals(IEnumerable< T > other)
int RemoveWhere(Predicate< T > match)
virtual bool BreadthFirstTreeWalk(TreeWalkPredicate< T > action)
Node FindRange(T from, T to, bool lowerBoundActive, bool upperBoundActive)
static IEqualityComparer< SortedSet< T > > CreateSetComparer()
virtual void GetObjectData(SerializationInfo info, StreamingContext context)
void ReplaceChildOrRoot(Node parent, Node child, Node newChild)
void ISerializable. GetObjectData(SerializationInfo info, StreamingContext context)
void CopyTo(T[] array, int index)
void InsertionBalance(Node current, ref Node parent, Node grandParent, Node greatGrandParent)
SortedSet(SerializationInfo info, StreamingContext context)
bool TryGetValue(T equalValue, [MaybeNullWhen(false)] out T actualValue)
virtual bool DoRemove(T item)
bool Overlaps(IEnumerable< T > other)
void SymmetricExceptWithSameComparer(SortedSet< T > other)
void ReplaceNode(Node match, Node parentOfMatch, Node successor, Node parentOfSuccessor)
static bool SortedSetEquals(SortedSet< T > set1, SortedSet< T > set2, IComparer< T > comparer)
bool IsSupersetOf(IEnumerable< T > other)
static Node ConstructRootFromSortedArray(T[] arr, int startIndex, int endIndex, Node redNode)
SortedSet(IEnumerable< T > collection)
ElementCount CheckUniqueAndUnfoundElements(IEnumerable< T > other, bool returnIfUnfound)
SortedSet(IComparer< T >? comparer)
bool IsProperSupersetOf(IEnumerable< T > other)
bool IsSubsetOfSortedSetWithSameComparer(SortedSet< T > asSorted)
virtual int InternalIndexOf(T item)
void AddAllElements(IEnumerable< T > collection)
static IEqualityComparer< SortedSet< T > > CreateSetComparer(IEqualityComparer< T >? memberEqualityComparer)
void UnionWith(IEnumerable< T > other)
void SymmetricExceptWith(IEnumerable< T > other)
virtual void IntersectWith(IEnumerable< T > other)
void CopyTo(T[] array, int index, int count)
virtual bool Contains(T item)
void RemoveAllElements(IEnumerable< T > collection)
virtual Node FindNode(T item)
void SymmetricExceptWithSameComparer(T[] other, int count)
virtual bool AddIfNotPresent(T item)
virtual SortedSet< T > GetViewBetween(T? lowerValue, T? upperValue)
virtual void IntersectWithEnumerable(IEnumerable< T > other)
void ExceptWith(IEnumerable< T > other)
bool IsProperSubsetOf(IEnumerable< T > other)
virtual void OnDeserialization(object? sender)
virtual bool IsWithinRange(T item)
Enumerator GetEnumerator()
static int Log2(int value)
bool HasEqualComparer(SortedSet< T > other)
bool IsSubsetOf(IEnumerable< T > other)
virtual bool InOrderTreeWalk(TreeWalkPredicate< T > action)
void IDeserializationCallback. OnDeserialization(object sender)
virtual void VersionCheck(bool updateCount=false)
IEnumerable< T > Reverse()
object? GetValue(string name, Type type)
int GetInt32(string name)
static string Serialization_MissingValues
static string Arg_ArrayPlusOffTooSmall
static string Argument_InvalidArrayType
static string Arg_NonZeroLowerBound
static string Serialization_InvalidOnDeser
static string InvalidOperation_EnumFailedVersion
static string Arg_RankMultiDimNotSupported
static string InvalidOperation_EnumOpCantHappen
static string ArgumentOutOfRange_NeedNonNegNum
static string Serialization_MismatchedCount
static string SortedSet_LowerValueGreaterThanUpperValue
void CopyTo(T[] array, int arrayIndex)
new IEnumerator< T > GetEnumerator()
void OnDeserialization(object? sender)
void GetObjectData(SerializationInfo info, StreamingContext context)
static int ToIntArrayLength(int n)
Enumerator(SortedSet< T > set, bool reverse)
readonly Stack< Node > _stack
readonly SortedSet< T > _tree
Enumerator(SortedSet< T > set)