<?xml version="1.0"?>
<doc>
<assembly>
<name>LSCollections</name>
</assembly>
<members>
<member name="T:LSCollections.Immutable.AvlEnumerator">
<summary>
Provides functionality for iterating over an AVL tree.
</summary>
</member>
<member name="M:LSCollections.Immutable.AvlEnumerator.#ctor(LSCollections.Immutable.IAvlNode)">
<summary>
Initializes a new instance of the AvlEnumerator class.
</summary>
<param name="root">
The root of the AVL tree to iterate over.
</param>
</member>
<member name="M:LSCollections.Immutable.AvlEnumerator.#ctor(LSCollections.Immutable.IAvlNode,System.Int32)">
<summary>
Initializes a new instance of the AvlEnumerator class.
</summary>
<param name="root">
The root of the AVL tree to iterate over.
</param>
<param name="count">
The number of nodes in the tree.
</param>
</member>
<member name="M:LSCollections.Immutable.AvlEnumerator.Reset">
<summary>
Sets the enumerator to its initial position, which is before
the first element in the AVL tree.
</summary>
</member>
<member name="M:LSCollections.Immutable.AvlEnumerator.MoveNext">
<summary>
Advances the enumerator to the next element of the AVL tree.
</summary>
<returns>
<b>true</b> if the enumerator was successfully advanced to the
next element; <b>false</b> if the enumerator has passed the end
of the collection.
</returns>
</member>
<member name="P:LSCollections.Immutable.AvlEnumerator.Current">
<summary>
Gets the current element in the AVL tree.
</summary>
<exception cref="T:System.InvalidOperationException">
The enumerator is positioned before the first element in the AVL
tree or after the last element.
</exception>
</member>
<member name="T:LSCollections.Immutable.AvlNode">
<summary>
Represents a node in an AVL tree.
</summary>
</member>
<member name="T:LSCollections.Immutable.IAvlNode">
<summary>
Represents the functionality and properties of AVL nodes.
</summary>
</member>
<member name="M:LSCollections.Immutable.IAvlNode.Remove">
<summary>
Removes the current node from the AVL tree.
</summary>
<returns>
The node to in the tree to replace the current node.
</returns>
</member>
<member name="M:LSCollections.Immutable.IAvlNode.Balance">
<summary>
Balances the subtree represented by the node.
</summary>
<returns>
The root node of the balanced subtree.
</returns>
</member>
<member name="M:LSCollections.Immutable.IAvlNode.IsBalanced">
<summary>
Indicates whether or not the subtree the node represents is in
balance.
</summary>
<returns>
<b>true</b> if the subtree is in balance; otherwise, <b>false</b>.
</returns>
</member>
<member name="P:LSCollections.Immutable.IAvlNode.BalanceFactor">
<summary>
Gets the balance factor of the subtree the node represents.
</summary>
</member>
<member name="P:LSCollections.Immutable.IAvlNode.Count">
<summary>
Gets the number of nodes in the subtree.
</summary>
</member>
<member name="P:LSCollections.Immutable.IAvlNode.Data">
<summary>
Gets the node's data.
</summary>
</member>
<member name="P:LSCollections.Immutable.IAvlNode.Height">
<summary>
Gets the height of the subtree the node represents.
</summary>
</member>
<member name="P:LSCollections.Immutable.IAvlNode.LeftChild">
<summary>
Gets the node's left child.
</summary>
</member>
<member name="P:LSCollections.Immutable.IAvlNode.RightChild">
<summary>
Gets the node's right child.
</summary>
</member>
<member name="M:LSCollections.Immutable.AvlNode.#ctor(System.Object,LSCollections.Immutable.IAvlNode,LSCollections.Immutable.IAvlNode)">
<summary>
Initializes a new instance of the AvlNode class with the specified
data and left and right children.
</summary>
<param name="data">
The data for the node.
</param>
<param name="leftChild">
The left child.
</param>
<param name="rightChild">
The right child.
</param>
</member>
<member name="M:LSCollections.Immutable.AvlNode.Remove">
<summary>
Removes the current node from the AVL tree.
</summary>
<returns>
The node to in the tree to replace the current node.
</returns>
</member>
<member name="M:LSCollections.Immutable.AvlNode.Balance">
<summary>
Balances the subtree represented by the node.
</summary>
<returns>
The root node of the balanced subtree.
</returns>
</member>
<member name="M:LSCollections.Immutable.AvlNode.IsBalanced">
<summary>
Indicates whether or not the subtree the node represents is in
balance.
</summary>
<returns>
<b>true</b> if the subtree is in balance; otherwise, <b>false</b>.
</returns>
</member>
<member name="P:LSCollections.Immutable.AvlNode.BalanceFactor">
<summary>
Gets the balance factor of the subtree the node represents.
</summary>
</member>
<member name="P:LSCollections.Immutable.AvlNode.Count">
<summary>
Gets the number of nodes in the subtree.
</summary>
</member>
<member name="P:LSCollections.Immutable.AvlNode.Data">
<summary>
Gets the node's data.
</summary>
</member>
<member name="P:LSCollections.Immutable.AvlNode.Height">
<summary>
Gets the height of the subtree the node represents.
</summary>
</member>
<member name="P:LSCollections.Immutable.AvlNode.LeftChild">
<summary>
Gets the node's left child.
</summary>
</member>
<member name="P:LSCollections.Immutable.AvlNode.RightChild">
<summary>
Gets the node's right child.
</summary>
</member>
<member name="T:LSCollections.Immutable.NullAvlNode">
<summary>
Represents a null AVL node.
</summary>
</member>
<member name="M:LSCollections.Immutable.NullAvlNode.Remove">
<summary>
Removes the current node from the AVL tree.
</summary>
<returns>
The node to in the tree to replace the current node.
</returns>
</member>
<member name="M:LSCollections.Immutable.NullAvlNode.Balance">
<summary>
Balances the subtree represented by the node.
</summary>
<returns>
The root node of the balanced subtree.
</returns>
</member>
<member name="M:LSCollections.Immutable.NullAvlNode.IsBalanced">
<summary>
Indicates whether or not the subtree the node represents is in
balance.
</summary>
<returns>
<b>true</b> if the subtree is in balance; otherwise, <b>false</b>.
</returns>
</member>
<member name="P:LSCollections.Immutable.NullAvlNode.BalanceFactor">
<summary>
Gets the balance factor of the subtree the node represents.
</summary>
</member>
<member name="P:LSCollections.Immutable.NullAvlNode.Count">
<summary>
Gets the number of nodes in the subtree.
</summary>
</member>
<member name="P:LSCollections.Immutable.NullAvlNode.Data">
<summary>
Gets the node's data.
</summary>
</member>
<member name="P:LSCollections.Immutable.NullAvlNode.Height">
<summary>
Gets the height of the subtree the node represents.
</summary>
</member>
<member name="P:LSCollections.Immutable.NullAvlNode.LeftChild">
<summary>
Gets the node's left child.
</summary>
</member>
<member name="P:LSCollections.Immutable.NullAvlNode.RightChild">
<summary>
Gets the node's right child.
</summary>
</member>
<member name="T:LSCollections.Immutable.RalEnumerator">
<summary>
Provides functionality for enumerating a RandomAccessList.
</summary>
</member>
<member name="M:LSCollections.Immutable.RalEnumerator.#ctor(LSCollections.Immutable.RalTopNode,System.Int32)">
<summary>
Initializes a new instance of the Enumerator with the specified
head of the list and the number of nodes in the list.
</summary>
<param name="head">
The head of the list.
</param>
<param name="count">
The number of nodes in the list.
</param>
</member>
<member name="M:LSCollections.Immutable.RalEnumerator.Reset">
<summary>
Sets the enumerator to its initial position, which is before
the first element in the random access list.
</summary>
</member>
<member name="M:LSCollections.Immutable.RalEnumerator.MoveNext">
<summary>
Advances the enumerator to the next element in the random access
list.
</summary>
<returns>
<b>true</b> if the enumerator was successfully advanced to the
next element; <b>false</b> if the enumerator has passed the end
of the collection.
</returns>
</member>
<member name="P:LSCollections.Immutable.RalEnumerator.Current">
<summary>
Gets the current element in the random access list.
</summary>
<exception cref="T:System.InvalidOperationException">
The enumerator is positioned before the first element in the
random access list or after the last element.
</exception>
</member>
<member name="T:LSCollections.Immutable.RalTopNode">
<summary>
Represents the top nodes in a RandomAccessList.
</summary>
</member>
<member name="M:LSCollections.Immutable.RalTopNode.#ctor(LSCollections.Immutable.RalTreeNode,LSCollections.Immutable.RalTopNode)">
<summary>
Initializes a new instance of the RalTopNode with the specified
root of the tree this node represents and the next top node in the
list.
</summary>
<param name="root">
The root node of the tree this top node represents.
</param>
<param name="nextNode">
The next top node in the list.
</param>
</member>
<member name="M:LSCollections.Immutable.RalTopNode.GetValue(System.Int32)">
<summary>
Gets the value at the specified element in the random access list.
</summary>
<param name="index">
An integer that represents the position of the random access list
element to get.
</param>
<returns>
The value at the specified position in the random access list.
</returns>
</member>
<member name="M:LSCollections.Immutable.RalTopNode.SetValue(System.Object,System.Int32)">
<summary>
Sets the specified element in the current random access list to the
specified value.
</summary>
<param name="value">
The new value for the specified element.
</param>
<param name="index">
An integer that represents the position of the random access list
element to set.
</param>
<returns>
A new random access list top node with the element at the specified
position set to the specified value.
</returns>
</member>
<member name="P:LSCollections.Immutable.RalTopNode.Root">
<summary>
Gets the root node represented by the top node.
</summary>
</member>
<member name="P:LSCollections.Immutable.RalTopNode.NextNode">
<summary>
Gets the next top node in the random access list.
</summary>
</member>
<member name="T:LSCollections.Immutable.RalTreeNode">
<summary>
Represents subtree nodes within random access lists.
</summary>
</member>
<member name="M:LSCollections.Immutable.RalTreeNode.#ctor(System.Object,LSCollections.Immutable.RalTreeNode,LSCollections.Immutable.RalTreeNode)">
<summary>
Initializes an instance of the RandomAccessListNode with the
specified value, left child, and right child.
</summary>
<param name="value">
The value to store in the node.
</param>
<param name="leftChild">
The left child.
</param>
<param name="rightChild">
The right child.
</param>
</member>
<member name="M:LSCollections.Immutable.RalTreeNode.GetValue(System.Int32)">
<summary>
Gets the value at the specified element in the random access list
subtree.
</summary>
<param name="index">
An integer that represents the position of the random access list
subtree element to get.
</param>
<returns>
The value at the specified position in the random access list
subtree.
</returns>
</member>
<member name="M:LSCollections.Immutable.RalTreeNode.SetValue(System.Object,System.Int32)">
<summary>
Sets the specified element in the current random access list
subtree to the specified value.
</summary>
<param name="value">
The new value for the specified element.
</param>
<param name="index">
An integer that represents the position of the random access list
subtree element to set.
</param>
<returns>
A new random access list tree node with the element at the specified
position set to the specified value.
</returns>
</member>
<member name="P:LSCollections.Immutable.RalTreeNode.Count">
<summary>
Gets the number of nodes in the tree.
</summary>
</member>
<member name="P:LSCollections.Immutable.RalTreeNode.LeftChild">
<summary>
Gets the left child.
</summary>
</member>
<member name="P:LSCollections.Immutable.RalTreeNode.RightChild">
<summary>
Gets the right child.
</summary>
</member>
<member name="P:LSCollections.Immutable.RalTreeNode.Value">
<summary>
Gets the value represented by this node.
</summary>
</member>
<member name="T:LSCollections.Immutable.Array">
<summary>
Represents an array data structure.
</summary>
</member>
<member name="M:LSCollections.Immutable.Array.#ctor(System.Int32)">
<summary>
Initialize an instance of the Array class with the specified array
length.
</summary>
<param name="length">
The length of the array.
</param>
</member>
<member name="M:LSCollections.Immutable.Array.#ctor(LSCollections.Immutable.RalTopNode,System.Int32)">
<summary>
Initializes a new instance of the Array class with the specified
head of the random access list and the length of the array.
</summary>
<param name="head">
The head of the random access list.
</param>
<param name="length">
The length of the array.
</param>
</member>
<member name="M:LSCollections.Immutable.Array.GetValue(System.Int32)">
<summary>
Gets the value of the specified element in the current Array.
</summary>
<param name="index">
An integer that represents the position of the Array element to
get.
</param>
<returns>
The value at the specified position in the Array.
</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
index is outside the range of valid indexes for the current Array.
</exception>
</member>
<member name="M:LSCollections.Immutable.Array.SetValue(System.Object,System.Int32)">
<summary>
Sets the specified element in the current Array to the specified
value.
</summary>
<param name="value">
The new value for the specified element.
</param>
<param name="index">
An integer that represents the position of the Array element to set.
</param>
<returns>
A new array with the element at the specified position set to the
specified value.
</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
index is outside the range of valid indexes for the current Array.
</exception>
</member>
<member name="M:LSCollections.Immutable.Array.GetEnumerator">
<summary>
Returns an IEnumerator for the Array.
</summary>
<returns>
An IEnumerator for the Array.
</returns>
</member>
<member name="P:LSCollections.Immutable.Array.Length">
<summary>
Gets an integer that represents the total number of elements in all
the dimensions of the Array.
</summary>
</member>
<member name="T:LSCollections.Immutable.ArrayList">
<summary>
Represents a collection of elements accessible by index and supports
insertion and deletion.
</summary>
</member>
<member name="M:LSCollections.Immutable.ArrayList.#cctor">
<summary>
Initializes the ArrayList class.
</summary>
</member>
<member name="M:LSCollections.Immutable.ArrayList.#ctor">
<summary>
Initializes a new instance of the ArrayList class.
</summary>
</member>
<member name="M:LSCollections.Immutable.ArrayList.#ctor(System.Collections.ICollection)">
<summary>
Initializes a new instance of the ArrayList class that contains
elements copied from the specified collection.
</summary>
<param name="collection">
The ICollection whose elements are copied to the new list.
</param>
</member>
<member name="M:LSCollections.Immutable.ArrayList.#ctor(LSCollections.Immutable.IAvlNode,System.Int32)">
<summary>
Initializes a new instance of the ArrayList class with the
specified root and count.
</summary>
<param name="root">
The root of the tree.
</param>
<param name="count">
The number of items in the ArrayList.
</param>
</member>
<member name="M:LSCollections.Immutable.ArrayList.Add(System.Object)">
<summary>
Adds an object to the end of the ArrayList.
</summary>
<param name="value">
The Object to be added to the end of the ArrayList.
</param>
<returns>
A new ArrayList object with the specified value added at the end.
</returns>
</member>
<member name="M:LSCollections.Immutable.ArrayList.Contains(System.Object)">
<summary>
Determines whether an element is in the ArrayList.
</summary>
<param name="value">
The Object to locate in the ArrayList.
</param>
<returns>
<b>true</b> if item is found in the ArrayList; otherwise,
<b>false</b>.
</returns>
</member>
<member name="M:LSCollections.Immutable.ArrayList.IndexOf(System.Object)">
<summary>
Returns the zero-based index of the first occurrence of a value in
the ArrayList.
</summary>
<param name="value">
The Object to locate in the ArrayList.
</param>
<returns>
The zero-based index of the first occurrence of value within the
ArrayList, if found; otherwise, -1.
</returns>
</member>
<member name="M:LSCollections.Immutable.ArrayList.Insert(System.Int32,System.Object)">
<summary>
Inserts an element into the ArrayList at the specified index.
</summary>
<param name="index">
The zero-based index at which value should be inserted.
</param>
<param name="value">
The Object to insert.
</param>
<returns>
A new ArrayList with the specified object inserted at the specified
index.
</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
index is less than zero or index is greater than Count.
</exception>
</member>
<member name="M:LSCollections.Immutable.ArrayList.Remove(System.Object)">
<summary>
Removes the first occurrence of a specified object from the
ArrayList.
</summary>
<param name="value">
The Object to remove from the ArrayList.
</param>
<returns>
A new ArrayList with the first occurrent of the specified object
removed.
</returns>
</member>
<member name="M:LSCollections.Immutable.ArrayList.RemoveAt(System.Int32)">
<summary>
Removes the element at the specified index of the ArrayList.
</summary>
<param name="index">
The zero-based index of the element to remove.
</param>
<returns>
A new ArrayList with the element at the specified index removed.
</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
index is less than zero or index is equal to or greater than Count.
</exception>
</member>
<member name="M:LSCollections.Immutable.ArrayList.GetValue(System.Int32)">
<summary>
Gets the value at the specified index.
</summary>
<param name="index">
The zero-based index of the element to get.
</param>
<returns>
The value at the specified index.
</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
index is less than zero or index is equal to or greater than Count.
</exception>
</member>
<member name="M:LSCollections.Immutable.ArrayList.SetValue(System.Int32,System.Object)">
<summary>
Sets the value at the specified index.
</summary>
<param name="index">
The zero-based index of the element to set.
</param>
<param name="value">
The value to set at the specified index.
</param>
<returns>
A new ArrayList with the specified value set at the specified index.
</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
index is less than zero or index is equal to or greater than Count.
</exception>
</member>
<member name="M:LSCollections.Immutable.ArrayList.GetEnumerator">
<summary>
Returns an enumerator that can iterate through the ArrayList.
</summary>
<returns>
An IEnumerator that can be used to iterate through the ArrayList.
</returns>
</member>
<member name="P:LSCollections.Immutable.ArrayList.Count">
<summary>
Gets the number of elements contained in the ArrayList.
</summary>
</member>
<member name="T:LSCollections.Immutable.RandomAccessList">
<summary>
Implements Chris Okasaki's random access list.
</summary>
</member>
<member name="F:LSCollections.Immutable.RandomAccessList.Empty">
<summary>
Represents an empty random access list.
</summary>
</member>
<member name="M:LSCollections.Immutable.RandomAccessList.#ctor">
<summary>
Initializes a new instance of the RandomAccessList class.
</summary>
</member>
<member name="M:LSCollections.Immutable.RandomAccessList.#ctor(LSCollections.Immutable.RalTopNode,System.Int32)">
<summary>
Initializes a new instance of the RandomAccessList class with the
specified first top node and the number of elements in the list.
</summary>
<param name="first">
The first top node in the list.
</param>
<param name="count">
The number of nodes in the list.
</param>
</member>
<member name="M:LSCollections.Immutable.RandomAccessList.Cons(System.Object)">
<summary>
Prepends a value to the random access list.
</summary>
<param name="value">
The value to prepend to the list.
</param>
<returns>
A new random access list with the specified value prepended to the
list.
</returns>
</member>
<member name="M:LSCollections.Immutable.RandomAccessList.GetValue(System.Int32)">
<summary>
Gets the value at the specified position in the current
RandomAccessList.
</summary>
<param name="index">
An integer that represents the position of the RandomAccessList
element to get.
</param>
<returns>
The value at the specified position in the RandomAccessList.
</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
index is outside the range of valid indexes for the current
RandomAccessList.
</exception>
</member>
<member name="M:LSCollections.Immutable.RandomAccessList.SetValue(System.Object,System.Int32)">
<summary>
Sets the specified element in the current RandomAccessList to the
specified value.
</summary>
<param name="value">
The new value for the specified element.
</param>
<param name="index">
An integer that represents the position of the RandomAccessList
element to set.
</param>
<returns>
A new RandomAccessList with the element at the specified position
set to the specified value.
</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
index is outside the range of valid indexes for the current
RandomAccessList.
</exception>
</member>
<member name="M:LSCollections.Immutable.RandomAccessList.GetEnumerator">
<summary>
Returns an IEnumerator for the RandomAccessList.
</summary>
<returns>
An IEnumerator for the RandomAccessList.
</returns>
</member>
<member name="P:LSCollections.Immutable.RandomAccessList.Count">
<summary>
Gets the number of elements in the RandomAccessList.
</summary>
</member>
<member name="P:LSCollections.Immutable.RandomAccessList.Head">
<summary>
Gets a RandomAccessList with first element of the current
RandomAccessList.
</summary>
<exception cref="T:System.InvalidOperationException">
If the RandomAccessList is empty.
</exception>
</member>
<member name="P:LSCollections.Immutable.RandomAccessList.Tail">
<summary>
Gets a RandomAccessList with all but the first element of the
current RandomAccessList.
</summary>
<exception cref="T:System.InvalidOperationException">
If the RandomAccessList is empty.
</exception>
</member>
<member name="T:LSCollections.Immutable.SortedList">
<summary>
Represents a collection of key-and-value pairs that are sorted by the
keys and are accessible by key.
</summary>
</member>
<member name="F:LSCollections.Immutable.SortedList.Empty">
<summary>
An empty SortedList.
</summary>
</member>
<member name="M:LSCollections.Immutable.SortedList.#ctor">
<summary>
Initializes a new instance of the SortedList class that is empty
and is sorted according to the IComparable interface implemented by
each key added to the SortedList.
</summary>
</member>
<member name="M:LSCollections.Immutable.SortedList.#ctor(System.Collections.IComparer)">
<summary>
Initializes a new instance of the SortedList class that is empty
and is sorted according to the specified IComparer interface.
</summary>
<param name="comparer">
The IComparer implementation to use when comparing keys, or a null
reference to use the IComparable implementation of each key.
</param>
</member>
<member name="M:LSCollections.Immutable.SortedList.#ctor(LSCollections.Immutable.IAvlNode,System.Collections.IComparer)">
<summary>
Initializes a new instance of the SortedList class with the
specified root node and the IComparer interface to use for sorting
keys.
</summary>
<param name="root">
The root of the AVL tree.
</param>
<param name="comparer">
The IComparer implementation to use when comparing keys, or a null
reference to use the IComparable implementation of each key.
</param>
</member>
<member name="M:LSCollections.Immutable.SortedList.Add(System.Object,System.Object)">
<summary>
Adds an element with the specified key and value to the SortedList.
</summary>
<param name="key">
The key of the element to add.
</param>
<param name="value">
The value of the element to add. The value can be a null reference.
</param>
<returns>
A new SortedList with the specified key and value added to the
previous SortedList.
</returns>
<exception cref="T:System.ArgumentNullException">
<i>key</i> is a null reference.
</exception>
<exception cref="T:System.ArgumentException">
An element with the specified key already exists in the SortedList,
or The SortedList is set to use the IComparable interface, and key
does not implement the IComparable interface.
</exception>
</member>
<member name="M:LSCollections.Immutable.SortedList.Contains(System.Object)">
<summary>
Determines whether the SortedList contains a specific key.
</summary>
<param name="key">
The key to locate in the SortedList.
</param>
<returns>
<b>true</b> if the SortedList contains an element with the
specified <i>key</i>; otherwise, <b>false</b>.
</returns>
</member>
<member name="M:LSCollections.Immutable.SortedList.GetEnumerator">
<summary>
Returns an IDictionaryEnumerator that can iterate through the
SortedList.
</summary>
<returns>
An IDictionaryEnumerator for the SortedList.
</returns>
</member>
<member name="M:LSCollections.Immutable.SortedList.Remove(System.Object)">
<summary>
Removes the element with the specified key from SortedList.
</summary>
<param name="key">
</param>
<returns>
The <i>key</i> of the element to remove.
</returns>
<exception cref="T:System.ArgumentNullException">
<i>key</i> is a null reference.
</exception>
<exception cref="T:System.ArgumentException">
The SortedList is set to use the IComparable interface, and key
does not implement the IComparable interface.
</exception>
</member>
<member name="P:LSCollections.Immutable.SortedList.Item(System.Object)">
<summary>
Gets the value associated with the specified key.
</summary>
</member>
<member name="P:LSCollections.Immutable.SortedList.Count">
<summary>
Gets the number of elements contained in the SortedList.
</summary>
</member>
<member name="T:LSCollections.Immutable.SortedList.SortedListEnumerator">
<summary>
Provides functionality for iterating through a SortedList.
</summary>
</member>
<member name="M:LSCollections.Immutable.SortedList.SortedListEnumerator.#ctor(LSCollections.Immutable.IAvlNode)">
<summary>
Initializes a new instance of the SortedListEnumerator class
with the specified root of the AVL tree to iterate over.
</summary>
<param name="root">
The root of the AVL tree the SortedList uses internally.
</param>
</member>
<member name="T:LSCollections.Immutable.Stack">
<summary>
Represents a simple last-in-first-out collection of objects.
</summary>
</member>
<member name="F:LSCollections.Immutable.Stack.Empty">
<summary>
An empty Stack.
</summary>
</member>
<member name="M:LSCollections.Immutable.Stack.#ctor">
<summary>
Initializes a new instance of the Stack class.
</summary>
</member>
<member name="M:LSCollections.Immutable.Stack.#ctor(LSCollections.Immutable.Stack.Node,System.Int32)">
<summary>
Initializes a new instance of the Stack class with the
specified top node and the number of elements in the stack.
</summary>
<param name="top">
The top node in the stack.
</param>
<param name="count">
The number of elements in the stack.
</param>
</member>
<member name="M:LSCollections.Immutable.Stack.Push(System.Object)">
<summary>
Inserts an object at the top of the Stack.
</summary>
<param name="obj">
The Object to push onto the Stack.
</param>
<returns>
A new stack with the specified object on the top of the stack.
</returns>
</member>
<member name="M:LSCollections.Immutable.Stack.Pop">
<summary>
Removes the object at the top of the Stack.
</summary>
<returns>
A new stack with top of the previous stack removed.
</returns>
<exception cref="T:System.InvalidOperationException">
The Stack is empty.
</exception>
</member>
<member name="M:LSCollections.Immutable.Stack.GetEnumerator">
<summary>
Returns an IEnumerator for the Stack.
</summary>
<returns>
An IEnumerator for the Stack.
</returns>
</member>
<member name="P:LSCollections.Immutable.Stack.Count">
<summary>
Gets the number of elements in the Stack.
</summary>
</member>
<member name="P:LSCollections.Immutable.Stack.Top">
<summary>
Gets the top of the stack.
</summary>
<exception cref="T:System.InvalidOperationException">
The Stack is empty.
</exception>
</member>
<member name="T:LSCollections.Immutable.Stack.Node">
<summary>
Represents a node in the stack.
</summary>
</member>
<member name="T:LSCollections.Immutable.Stack.StackEnumerator">
<summary>
Provides functionality for iterating over the Stack class.
</summary>
</member>
<member name="M:LSCollections.Immutable.Stack.StackEnumerator.#ctor(LSCollections.Immutable.Stack)">
<summary>
Initializes a new instance of the StackEnumerator class with
the specified stack to iterate over.
</summary>
<param name="owner">
The Stack to iterate over.
</param>
</member>
<member name="M:LSCollections.Immutable.Stack.StackEnumerator.Reset">
<summary>
Sets the enumerator to its initial position, which is before
the first element in the Stack.
</summary>
</member>
<member name="M:LSCollections.Immutable.Stack.StackEnumerator.MoveNext">
<summary>
Advances the enumerator to the next element of the Stack.
</summary>
<returns></returns>
</member>
<member name="P:LSCollections.Immutable.Stack.StackEnumerator.Current">
<summary>
Gets the current element in the Stack.
</summary>
<exception cref="T:System.InvalidOperationException">
The enumerator is positioned before the first element of the
Stack or after the last element.
</exception>
</member>
<member name="T:LSCollections.Deque">
<summary>
Represents a simple double-ended-queue collection of objects.
</summary>
</member>
<member name="M:LSCollections.Deque.#ctor">
<summary>
Initializes a new instance of the Deque class.
</summary>
</member>
<member name="M:LSCollections.Deque.#ctor(System.Collections.ICollection)">
<summary>
Initializes a new instance of the Deque class that contains
elements copied from the specified collection.
</summary>
<param name="col">
The ICollection to copy elements from.
</param>
</member>
<member name="M:LSCollections.Deque.Clear">
<summary>
Removes all objects from the Deque.
</summary>
</member>
<member name="M:LSCollections.Deque.Contains(System.Object)">
<summary>
Determines whether or not an element is in the Deque.
</summary>
<param name="obj">
The Object to locate in the Deque.
</param>
<returns>
<b>true</b> if <i>obj</i> if found in the Deque; otherwise,
<b>false</b>.
</returns>
</member>
<member name="M:LSCollections.Deque.PushFront(System.Object)">
<summary>
Inserts an object at the front of the Deque.
</summary>
<param name="obj">
The object to push onto the deque;
</param>
</member>
<member name="M:LSCollections.Deque.PushBack(System.Object)">
<summary>
Inserts an object at the back of the Deque.
</summary>
<param name="obj">
The object to push onto the deque;
</param>
</member>
<member name="M:LSCollections.Deque.PopFront">
<summary>
Removes and returns the object at the front of the Deque.
</summary>
<returns>
The object at the front of the Deque.
</returns>
<exception cref="T:System.InvalidOperationException">
The Deque is empty.
</exception>
</member>
<member name="M:LSCollections.Deque.PopBack">
<summary>
Removes and returns the object at the back of the Deque.
</summary>
<returns>
The object at the back of the Deque.
</returns>
<exception cref="T:System.InvalidOperationException">
The Deque is empty.
</exception>
</member>
<member name="M:LSCollections.Deque.PeekFront">
<summary>
Returns the object at the front of the Deque without removing it.
</summary>
<returns>
The object at the front of the Deque.
</returns>
<exception cref="T:System.InvalidOperationException">
The Deque is empty.
</exception>
</member>
<member name="M:LSCollections.Deque.PeekBack">
<summary>
Returns the object at the back of the Deque without removing it.
</summary>
<returns>
The object at the back of the Deque.
</returns>
<exception cref="T:System.InvalidOperationException">
The Deque is empty.
</exception>
</member>
<member name="M:LSCollections.Deque.ToArray">
<summary>
Copies the Deque to a new array.
</summary>
<returns>
A new array containing copies of the elements of the Deque.
</returns>
</member>
<member name="M:LSCollections.Deque.Synchronized(LSCollections.Deque)">
<summary>
Returns a synchronized (thread-safe) wrapper for the Deque.
</summary>
<param name="deque">
The Deque to synchronize.
</param>
<returns>
A synchronized wrapper around the Deque.
</returns>
</member>
<member name="M:LSCollections.Deque.CopyTo(System.Array,System.Int32)">
<summary>
Copies the Deque elements to an existing one-dimensional Array,
starting at the specified array index.
</summary>
<param name="array">
The one-dimensional Array that is the destination of the elements
copied from Deque. The Array must have zero-based indexing.
</param>
<param name="index">
The zero-based index in array at which copying begins.
</param>
</member>
<member name="M:LSCollections.Deque.GetEnumerator">
<summary>
Returns an enumerator that can iterate through the Deque.
</summary>
<returns>
An IEnumerator for the Deque.
</returns>
</member>
<member name="M:LSCollections.Deque.Clone">
<summary>
Creates a shallow copy of the Deque.
</summary>
<returns>
A shalloe copy of the Deque.
</returns>
</member>
<member name="P:LSCollections.Deque.IsSynchronized">
<summary>
Gets a value indicating whether access to the Deque is synchronized
(thread-safe).
</summary>
</member>
<member name="P:LSCollections.Deque.Count">
<summary>
Gets the number of elements contained in the Deque.
</summary>
</member>
<member name="P:LSCollections.Deque.SyncRoot">
<summary>
Gets an object that can be used to synchronize access to the Deque.
</summary>
</member>
<member name="T:LSCollections.SkipList">
<summary>
Represents a collection of key-and-value pairs.
</summary>
<remarks>
The SkipList class is an implementation of the IDictionary interface. It
is based on the data structure created by William Pugh.
</remarks>
</member>
<member name="M:LSCollections.SkipList.#cctor">
<summary>
Static constructor for intializing the SkipList class.
</summary>
</member>
<member name="M:LSCollections.SkipList.#ctor">
<summary>
Initializes a new instance of the SkipList class that is empty and
is sorted according to the IComparable interface implemented by
each key added to the SkipList.
</summary>
<remarks>
Each key must implement the IComparable interface to be capable of
comparisons with every other key in the SortedList. The elements
are sorted according to the IComparable implementation of each key
added to the SkipList.
</remarks>
</member>
<member name="M:LSCollections.SkipList.#ctor(System.Collections.IComparer)">
<summary>
Initializes a new instance of the SkipList class that is empty and
is sorted according to the specified IComparer interface.
</summary>
<param name="comparer">
The IComparer implementation to use when comparing keys.
</param>
<remarks>
The elements are sorted according to the specified IComparer
implementation. If comparer is a null reference, the IComparable
implementation of each key is used; therefore, each key must
implement the IComparable interface to be capable of comparisons
with every other key in the SkipList.
</remarks>
</member>
<member name="M:LSCollections.SkipList.Finalize">
<summary>
Destructor.
</summary>
</member>
<member name="M:LSCollections.SkipList.Initialize">
<summary>
Initializes the SkipList.
</summary>
</member>
<member name="M:LSCollections.SkipList.GetNewLevel">
<summary>
Returns a level value for a new SkipList node.
</summary>
<returns>
The level value for a new SkipList node.
</returns>
</member>
<member name="M:LSCollections.SkipList.Search(System.Object)">
<summary>
Searches for the specified key.
</summary>
<param name="key">
The key to search for.
</param>
<returns>
Returns true if the specified key is in the SkipList.
</returns>
</member>
<member name="M:LSCollections.SkipList.Search(System.Object,LSCollections.SkipList.Node@)">
<summary>
Searches for the specified key.
</summary>
<param name="key">
The key to search for.
</param>
<param name="curr">
A SkipList node to hold the results of the search.
</param>
<returns>
Returns true if the specified key is in the SkipList.
</returns>
</member>
<member name="M:LSCollections.SkipList.Search(System.Object,LSCollections.SkipList.Node[])">
<summary>
Searches for the specified key.
</summary>
<param name="key">
The key to search for.
</param>
<param name="update">
An array of nodes holding references to the places in the SkipList
search in which the search dropped down one level.
</param>
<returns>
Returns true if the specified key is in the SkipList.
</returns>
</member>
<member name="M:LSCollections.SkipList.Search(System.Object,LSCollections.SkipList.Node@,LSCollections.SkipList.Node[])">
<summary>
Searches for the specified key.
</summary>
<param name="key">
The key to search for.
</param>
<param name="curr">
A SkipList node to hold the results of the search.
</param>
<param name="update">
An array of nodes holding references to the places in the SkipList
search in which the search dropped down one level.
</param>
<returns>
Returns true if the specified key is in the SkipList.
</returns>
</member>
<member name="M:LSCollections.SkipList.SearchWithComparer(System.Object,LSCollections.SkipList.Node@,LSCollections.SkipList.Node[])">
<summary>
Search for the specified key using a comparer.
</summary>
<param name="key">
The key to search for.
</param>
<param name="curr">
A SkipList node to hold the results of the search.
</param>
<param name="update">
An array of nodes holding references to the places in the SkipList
search in which the search dropped down one level.
</param>
<returns>
Returns true if the specified key is in the SkipList.
</returns>
</member>
<member name="M:LSCollections.SkipList.SearchWithComparable(System.Object,LSCollections.SkipList.Node@,LSCollections.SkipList.Node[])">
<summary>
Search for the specified key using the IComparable interface
implemented by each key.
</summary>
<param name="key">
The key to search for.
</param>
<param name="curr">
A SkipList node to hold the results of the search.
</param>
<param name="update">
An array of nodes holding references to the places in the SkipList
search in which the search dropped down one level.
</param>
<returns>
Returns true if the specified key is in the SkipList.
</returns>
<remarks>
Assumes each key inserted into the SkipList implements the
IComparable interface.
If the specified key is in the SkipList, the curr parameter will
reference the node with the key. If the specified key is not in the
SkipList, the curr paramater will either hold the node with the
first key value greater than the specified key or it will have the
same value as the header indicating that the search reached the end
of the SkipList.
</remarks>
</member>
<member name="M:LSCollections.SkipList.Insert(System.Object,System.Object,LSCollections.SkipList.Node[])">
<summary>
Inserts a key/value pair into the SkipList.
</summary>
<param name="key">
The key to insert into the SkipList.
</param>
<param name="val">
The value to insert into the SkipList.
</param>
<param name="update">
An array of nodes holding references to places in the SkipList in
which the search for the place to insert the new key/value pair
dropped down one level.
</param>
</member>
<member name="M:LSCollections.SkipList.Add(System.Object,System.Object)">
<summary>
Adds an element with the provided key and value to the SkipList.
</summary>
<param name="key">
The Object to use as the key of the element to add.
</param>
<param name="value">
The Object to use as the value of the element to add.
</param>
</member>
<member name="M:LSCollections.SkipList.Clear">
<summary>
Removes all elements from the SkipList.
</summary>
</member>
<member name="M:LSCollections.SkipList.Contains(System.Object)">
<summary>
Determines whether the SkipList contains an element with the
specified key.
</summary>
<param name="key">
The key to locate in the SkipList.
</param>
<returns>
true if the SkipList contains an element with the key; otherwise,
false.
</returns>
</member>
<member name="M:LSCollections.SkipList.GetEnumerator">
<summary>
Returns an IDictionaryEnumerator for the SkipList.
</summary>
<returns>
An IDictionaryEnumerator for the SkipList.
</returns>
</member>
<member name="M:LSCollections.SkipList.Remove(System.Object)">
<summary>
Removes the element with the specified key from the SkipList.
</summary>
<param name="key">
The key of the element to remove.
</param>
</member>
<member name="M:LSCollections.SkipList.CopyTo(System.Array,System.Int32)">
<summary>
Copies the elements of the SkipList to an Array, starting at a
particular Array index.
</summary>
<param name="array">
The one-dimensional Array that is the destination of the elements
copied from SkipList.
</param>
<param name="index">
The zero-based index in array at which copying begins.
</param>
</member>
<member name="M:LSCollections.SkipList.System#Collections#IEnumerable#GetEnumerator">
<summary>
Returns an enumerator that can iterate through the SkipList.
</summary>
<returns>
An IEnumerator that can be used to iterate through the collection.
</returns>
</member>
<member name="P:LSCollections.SkipList.IsFixedSize">
<summary>
Gets a value indicating whether the SkipList has a fixed size.
</summary>
</member>
<member name="P:LSCollections.SkipList.IsReadOnly">
<summary>
Gets a value indicating whether the IDictionary is read-only.
</summary>
</member>
<member name="P:LSCollections.SkipList.Item(System.Object)">
<summary>
Gets or sets the element with the specified key. This is the
indexer for the SkipList.
</summary>
</member>
<member name="P:LSCollections.SkipList.Keys">
<summary>
Gets an ICollection containing the keys of the SkipList.
</summary>
</member>
<member name="P:LSCollections.SkipList.Values">
<summary>
Gets an ICollection containing the values of the SkipList.
</summary>
</member>
<member name="P:LSCollections.SkipList.Count">
<summary>
Gets the number of elements contained in the SkipList.
</summary>
</member>
<member name="P:LSCollections.SkipList.IsSynchronized">
<summary>
Gets a value indicating whether access to the SkipList is
synchronized (thread-safe).
</summary>
</member>
<member name="P:LSCollections.SkipList.SyncRoot">
<summary>
Gets an object that can be used to synchronize access to the
SkipList.
</summary>
</member>
<member name="T:LSCollections.SkipList.Node">
<summary>
Represents a node in the SkipList.
</summary>
</member>
<member name="M:LSCollections.SkipList.Node.#ctor(System.Int32)">
<summary>
Initializes an instant of a Node with its node level.
</summary>
<param name="level">
The node level.
</param>
</member>
<member name="M:LSCollections.SkipList.Node.#ctor(System.Int32,System.Object,System.Object)">
<summary>
Initializes an instant of a Node with its node level and
key/value pair.
</summary>
<param name="level">
The node level.
</param>
<param name="key">
The key for the node.
</param>
<param name="val">
The value for the node.
</param>
</member>
<member name="M:LSCollections.SkipList.Node.Dispose">
<summary>
Disposes the Node.
</summary>
</member>
<member name="P:LSCollections.SkipList.Node.Key">
<summary>
Key property.
</summary>
</member>
<member name="P:LSCollections.SkipList.Node.Value">
<summary>
Value property.
</summary>
</member>
<member name="P:LSCollections.SkipList.Node.Entry">
<summary>
Node dictionary Entry property - contains key/value pair.
</summary>
</member>
<member name="T:LSCollections.SkipList.SkipListEnumerator">
<summary>
Enumerates the elements of a skip list.
</summary>
</member>
<member name="M:LSCollections.SkipList.SkipListEnumerator.#ctor(LSCollections.SkipList)">
<summary>
Initializes an instance of a SkipListEnumerator.
</summary>
<param name="list"></param>
</member>
<member name="M:LSCollections.SkipList.SkipListEnumerator.MoveNext">
<summary>
Advances the enumerator to the next element of the skip list.
</summary>
<returns>
true if the enumerator was successfully advanced to the next
element; false if the enumerator has passed the end of the
skip list.
</returns>
</member>
<member name="M:LSCollections.SkipList.SkipListEnumerator.Reset">
<summary>
Sets the enumerator to its initial position, which is before
the first element in the skip list.
</summary>
</member>
<member name="P:LSCollections.SkipList.SkipListEnumerator.Entry">
<summary>
Gets both the key and the value of the current dictionary
entry.
</summary>
</member>
<member name="P:LSCollections.SkipList.SkipListEnumerator.Key">
<summary>
Gets the key of the current dictionary entry.
</summary>
</member>
<member name="P:LSCollections.SkipList.SkipListEnumerator.Value">
<summary>
Gets the value of the current dictionary entry.
</summary>
</member>
<member name="P:LSCollections.SkipList.SkipListEnumerator.Current">
<summary>
Gets the current element in the skip list.
</summary>
</member>
</members>
</doc>