privatenew arrgh.OrderedEnumerable(source, keySelector, compare, descending)
        Represents an ordered collection that can be iterated over.
    
    
    
    
    
        
| Name | Type | Description | 
|---|---|---|
| source | arrgh.Enumerable | The collection that needs to be sorted. | 
| keySelector | keySelector | A function to extract the key from an element. | 
| compare | compare | optional A function that tests if an object is smaller than, greater than or equal to another object. | 
| descending | Boolean | Indicated wheter the collection needs to be sorted ascending or descending. | 
Extends
Methods
- 
    inherited aggregate(seed, accumulator, resultSelector){*}
- 
    
    Determines whether all elements of the collection satisfy a condition.
 When a result selector is passed to the function a seed should also be specified.Name Type Description seed* optional The initial accumulator value (mandatory if a result selector is specified). accumulatoraccumulator An accumulator function to be invoked on each element. resultSelectorselector optional A function to transform the final accumulator value into the result value. Returns:Type Description * - The final accumulator value. 
- 
    inherited all(predicate){Boolean}
- 
    
    Determines whether all elements of the collection satisfy a condition.Name Type Description predicatepredicate A function to test each element for a condition. Returns:Type Description Boolean - True if the list is empty or if all elements in the collection satisfy a condition, else false. 
- 
    inherited any(predicate){Boolean}
- 
    
    Determines whether the collection contains any elements or if any elements satisfy a condition.Name Type Description predicatepredicate optional A function to test each element for a condition. Returns:Type Description Boolean - True if the collection contains any elements or if any elements satisfy a condition, else false. 
- 
    inherited asEnumerable(){arrgh.Enumerable}
- 
    
    Returns the input typed as Enumerable.Returns:Type Description arrgh.Enumerable - The input collection as Enumerable. 
- 
    inherited average(selector){Number}
- 
    
    Computes the average of a collection of values.
 Values are converted to numerics, but if this fails unexpected averages may occur.Name Type Description selectorselector optional A function that projects an element into a new form. Throws:Throws an error if the collection contains no elements.Returns:Type Description Number - The average of all values in the collection, or NaN. 
- 
    inherited concat(other){arrgh.Enumerable}
- 
    
    Concatenates two collections.Name Type Description otherother The collection to concatenate to the current collection. Returns:Type Description arrgh.Enumerable - A collection that contains all the elements of both the current and the other collection. 
- 
    inherited contains(elem, eqComparer){Boolean}
- 
    
    Determines whether a collection contains a specified element, optionally uses a custom equality comparer.Name Type Default Description elem* The element to locate in the collection. eqComparerequals | equalityComparer (===) optional A function or object that tests if two elements are equal. Returns:Type Description Boolean - Returns whether the specified element is contained in the collection. 
- 
    inherited count(predicate){Number}
- 
    
    Specifies how many elements the collection has, or how many satisfy a certain condition.Name Type Description predicatepredicate optional A function to test each element for a condition. Returns:Type Description Number - A number that specifies how many elements the collection has, or how many satisfy a certain condition. 
- 
    inherited defaultIfEmpty(defaultValue){arrgh.Enumerable}
- 
    
    Returns the elements of the specified collection or a collection containing only the default value if the collection is empty.Name Type Description defaultValue* The default value to be returned when the collection is empty. Returns:Type Description arrgh.Enumerable - A new collection containing the elements of the specified collection or a new collection containing only the default value if the collection is empty. 
- 
    inherited distinct(eqComparer){arrgh.Enumerable}
- 
    
    Returns distinct elements from a collection by using the default or a custom equality comparer to compare values.Name Type Default Description eqComparerequals | equalityComparer (===) optional A function or object that tests if two elements are equal. Returns:Type Description arrgh.Enumerable - A new collection with unique elements. 
- 
    inherited elementAt(index){*}
- 
    
    Returns the element at a specified index.Name Type Description indexNumber The index of the element to find. Throws:Throws an error if the specified index is outside the bounds of the collection.Returns:Type Description * - The element at the specified index. 
- 
    inherited elementAtOrDefault(index, defaultValue){*}
- 
    
    Returns the element at a specified index or a default value.Name Type Description indexNumber The index of the element to find. defaultValue* optional The value that is returned when the specified index is not found. Returns:Type Description * - The element at the specified index or a default value. 
- 
    inherited except(other, eqComparer){arrgh.Enumerable}
- 
    
    Produces the set difference of two collections.Name Type Default Description otherarrgh.Enumerable A collection whose elements that also occur in the first sequence will cause those elements to be removed from the returned collection. eqComparerequals | equalityComparer (===) optional A function or object that tests if two elements are equal. Returns:Type Description arrgh.Enumerable - A collection that contains the set difference of the elements of two collections. 
- 
    inherited filter(predicate){arrgh.Enumerable}
- 
    
    Filters a collection of values based on a predicate. Each element's index is used in the logic of the predicate function.Name Type Description predicateindexPredicate A function to test each element for a condition. Returns:Type Description arrgh.Enumerable - A collection that contains all elements that satisfy the condition. 
- 
    inherited first(predicate){*}
- 
    
    Returns the first element in a collection, or the first element that satisfies a condition.Name Type Description predicatepredicate optional A function to test each element for a condition. Throws:Throws an error if the collection is empty or when no element matches the condition.Returns:Type Description * - Returns the first element of the collection, or the first element that satisfies a condition. 
- 
    inherited firstOrDefault(predicate, defaultValue){*}
- 
    
    Returns the first element in a collection, or the first element that satisfies a condition.
 If the element is not found returns a default value.Name Type Description predicatepredicate optional A function to test each element for a condition. defaultValue* optional The value that is returned when the collection is empty or no element matches the condition. Returns:Type Description * - Returns the first element of the collection, or the first element that satisfies a condition, or a specified default value. 
- 
    inherited forEach(callback)
- 
    
    Performs the specified action on each element of the collection.Name Type Description callbackforEachCallback The callback that is applied to each element in the enumerable. 
- 
    inherited getIterator(){arrgh.Iterator}
- 
    
    Returns an iterator that iterates through the collection.Returns:Type Description arrgh.Iterator - Returns an iterator that iterates through the collection. 
- 
    inherited groupBy(keySelector, elementSelector, resultSelector, eqComparer)
- 
    
    Groups the elements of a collection according to a specified key selector.Name Type Default Description keySelectorkeySelector A function that returns the key value from an element. elementSelectorselector optional A function to project an element into a new form. resultSelectorgroupByResultSelector optional A function to create a result value from each group. eqComparerequalityComparer (===) optional An object that tests if two keys are equal. 
- 
    inherited groupJoin(inner, outerKeySelector, innerKeySelector, resultSelector, eqComparer){arrgh.Enumerable}
- 
    
    Correlates the elements of two collections based on equality of keys and groups the results.Name Type Default Description innerarrgh.Enumerable The collection to join with. outerKeySelectorkeySelector A function that returns the key value from an element of the outer collection. innerKeySelectorkeySelector A function that returns the key value from an element of the inner collection. resultSelectorgroupJoinResultSelector A function to create a result value from each group. eqComparerequalityComparer (===) optional An object that tests if two keys are equal. Returns:Type Description arrgh.Enumerable - A collection that contains elements that are obtained by performing a grouped join on two collections. 
- 
    inherited indexOf(searchElem, fromIndex){Number}
- 
    
    Finds the first index at which a given element can be found in the collection, or -1 if it is not present.Name Type Default Description searchElem* The element to locate in the collection. fromIndexNumber 0 optional The index to start the search at. Returns:Type Description Number - The first index of the element in the array or -1 if not found. 
- 
    inherited intersect(other, eqComparer){arrgh.Enumerable}
- 
    
    Produces the set intersection of two collections.Name Type Default Description otherarrgh.Enumerable A collection whose elements that also occur in the first sequence will cause those elements to be included in the returned collection. eqComparerequals | equalityComparer (===) optional A function or object that tests if two elements are equal. Returns:Type Description arrgh.Enumerable - A collection that contains the set intersection of the elements of two collections. 
- 
    inherited join(inner, outerKeySelector, innerKeySelector, resultSelector, eqComparer)
- 
    
    Correlates the elements of two collections based on equality of keys.Name Type Default Description innerarrgh.Enumerable The collection to join with. outerKeySelectorkeySelector A function that returns the key value from an element of the outer collection. innerKeySelectorkeySelector A function that returns the key value from an element of the inner collection. resultSelectorjoinResultSelector A function to create a result from two matched elements. eqComparerequalityComparer (===) optional An object that tests if two keys are equal. 
- 
    inherited last(predicate){*}
- 
    
    Returns the last element in a collection, or the last element that satisfies a condition.Name Type Description predicatepredicate optional A function to test each element for a condition. Throws:Throws an error when the collection is empty or when no element matches the condition.Returns:Type Description * - Returns the last element of the collection, or the last element that satisfies a condition. 
- 
    inherited lastIndexOf(searchElem, fromIndex){Number}
- 
    
    Finds the last index at which a given element can be found in the collection, or -1 if it is not present.Name Type Default Description searchElem* The element to locate in the collection. fromIndexNumber 0 optional The index to start the search at. Returns:Type Description Number - The last index of the element in the array or -1 if not found. 
- 
    inherited lastOrDefault(predicate, defaultValue){*}
- 
    
    Returns the last element in a collection, or the last element that satisfies a condition.
 If the element is not found returns a default value.Name Type Description predicatepredicate optional A function to test each element for a condition. defaultValue* optional The value that is returned when the collection is empty or no element matches the condition. Returns:Type Description * - Returns the last element of the collection, or the last element that satisfies a condition, or a specified default value. 
- 
    inherited map(selector){arrgh.Enumerable}
- 
    
    Projects each element of a collection into a new form.Name Type Description selectorindexSelector A function that projects an element into a new form. Returns:Type Description arrgh.Enumerable - A collection whose elements are the result of invoking the transform function on each element of source. 
- 
    inherited max(selector){*}
- 
    
    Returns the maximum value in a collection.
 Values are converted to numerics. If this fails and the value is NaN then NaN is treated as smaller than anything.Name Type Description selectorselector optional A function that projects an element into a new form. Throws:Throws an error when the collection is empty.Returns:Type Description * - Returns the maximum value in the collection or NaN. 
- 
    inherited min(selector){*}
- 
    
    Returns the minimum value in a collection.
 Values are converted to numerics. If this fails the function returns NaN.Name Type Description selectorselector optional A function that projects an element into a new form. Throws:Throws an error when the collection is empty.Returns:Type Description * - Returns the minimum value in the collection or NaN. 
- 
    inherited ofType(type){arrgh.Enumerable}
- 
    
    Filters elements based on a specified type (constructor).
 Object and null do not evaluate to the same type and neither do undefined and null.Name Type Description type* | undefined | null The constructor of a type or undefined or null. Returns:Type Description arrgh.Enumerable - Returns a collection containing only values that are of the specified type. 
- 
    inherited orderBy(keySelector, compare){arrgh.OrderedEnumerable}
- 
    
    Sorts the elements of a sequence in ascending order according to a key.Name Type Description keySelectorkeySelector A function to extract a key from an element. comparecompare optional A function that tests if an object is smaller than, greater than or equal to another object. Returns:Type Description arrgh.OrderedEnumerable - Returns an ordered enumerable. 
- 
    inherited orderByDescending(keySelector, compare){arrgh.OrderedEnumerable}
- 
    
    Sorts the elements of a sequence in descending order according to a key.Name Type Description keySelectorkeySelector A function to extract a key from an element. comparecompare optional A function that tests if an object is smaller than, greater than or equal to another object. Returns:Type Description arrgh.OrderedEnumerable - Returns an ordered enumerable. 
- 
    inherited reverse(){arrgh.Enumerable}
- 
    
    Reverses the order of the elements in a collection.Returns:Type Description arrgh.Enumerable - A collection that contains the original collection in reversed order. 
- 
    inherited select(selector){arrgh.Enumerable}
- 
    
    Projects each element of a collection into a new form.Name Type Description selectorindexSelector A function that projects an element into a new form. - See:
 Returns:Type Description arrgh.Enumerable - A collection whose elements are the result of invoking the transform function on each element of source. 
- 
    inherited selectMany(collectionSelector, resultSelector){arrgh.Enumerable}
- 
    
    Projects each element of a collection to an Enumerable and flattens the resulting collections into one collection.Name Type Description collectionSelectorcollectionSelector A function that projects an element into a new form. resultSelectorselectManyResultSelector optional A function that creates a result value from each element in the intermediate collection. Returns:Type Description arrgh.Enumerable - A collection whose elements are the result of invoking the one-to-many transform function on each element of the input collection. 
- 
    inherited sequenceEquals(other, eqComparer){Boolean}
- 
    
    Determines whether two collections are equal by comparing the elements, optionally using a custom equality comparer for their type.Name Type Default Description otherarrgh.Enumerable Another collection to compare with. eqComparerequalityComparer (===) optional An object that tests if two objects are equal. Returns:Type Description Boolean - True if all elements in both collections match, otherwise false. 
- 
    inherited single(predicate){*}
- 
    
    Returns the only element in a collection, or the only element that satisfies a condition.Name Type Description predicatepredicate optional A function to test each element for a condition. Throws:Throws an error when the collection is empty or when no element matches the condition or when the collection (or predicate) returns more than a single element.Returns:Type Description * - Returns the only element of the collection, or the only element that satisfies a condition. 
- 
    inherited singleOrDefault(predicate, defaultValue){*}
- 
    
    Returns the only element in a collection, or the only element that satisfies a condition.
 If the element is not found returns a default value.Name Type Description predicatepredicate optional A function to test each element for a condition. defaultValue* optional The value that is returned when the collection is empty or no element matches the condition. Throws:Throws an error when the collection (or predicate) returns more than a single element.Returns:Type Description * - Returns the only element of the collection, or the only element that satisfies a condition, or a specified default value. 
- 
    inherited skip(count){arrgh.Enumerable}
- 
    
    Bypasses a specified number of elements in a collection and then returns the remaining elements.Name Type Description countNumber The number of elements to skip. Returns:Type Description arrgh.Enumerable - A collection that contains the elements that occur after the specified index. 
- 
    inherited skipWhile(predicate){arrgh.Enumerable}
- 
    
    Bypasses elements in a collection as long as a specified condition is true and then returns the remaining elements.Name Type Description predicateindexPredicate A function to test whether to skip the element. Returns:Type Description arrgh.Enumerable - A collection that contains the elements starting at the first element in the linear series that does not pass the test specified by predicate. 
- 
    inherited some(predicate){Boolean}
- 
    
    Determines whether the collection contains any elements or if any elements satisfy a condition.Name Type Description predicatepredicate optional A function to test each element for a condition. - See:
 Returns:Type Description Boolean - True if the collection contains any elements or if any elements satisfy a condition, else false. 
- 
    inherited sum(selector){Number}
- 
    
    Computes the sum of a collection of values.
 If values are not numerics the result may be NaN or something unexpected (e.g. "2" + 2 will results 22).Name Type Description selectorselector optional A function that projects an element into a new form. Throws:Throws an error if the collection contains no elements.Returns:Type Description Number - The sum of all values in the collection, or NaN. 
- 
    inherited take(count){arrgh.Enumerable}
- 
    
    Returns a specified number of elements from the start of a collection.Name Type Description countNumber The number of elements to take. Returns:Type Description arrgh.Enumerable - A collection that contains the elements that occur before the specified index. 
- 
    inherited takeWhile(predicate){arrgh.Enumerable}
- 
    
    Returns elements from a collection as long as a specified condition is true.Name Type Description predicateindexPredicate A function to test whether to take the element. Returns:Type Description arrgh.Enumerable - A collection that contains the elements that occur before the element at which the test no longer passes. 
- 
    thenBy(keySelector, compare){arrgh.OrderedEnumerable}
- 
    
    Performs a subsequent ordering of the elements in a sequence in ascending order according to a key.Name Type Description keySelectorkeySelector A function to extract a key from an element. comparecompare optional A function that tests if an object is smaller than, greater than or equal to another object. Returns:Type Description arrgh.OrderedEnumerable - Returns an ordered enumerable. 
- 
    thenByDescending(keySelector, compare){arrgh.OrderedEnumerable}
- 
    
    Performs a subsequent ordering of the elements in a sequence in descending order according to a key.Name Type Description keySelectorkeySelector A function to extract a key from an element. comparecompare optional A function that tests if an object is smaller than, greater than or equal to another object. Returns:Type Description arrgh.OrderedEnumerable - Returns an ordered enumerable. 
- 
    inherited toArray(){Array}
- 
    
    Converts the collection to a JavaScript array.Returns:Type Description Array - Returns a JavaScript array. 
- 
    inherited toDictionary(keySelector, elementSelector, eqComparer){arrgh.Dictionary}
- 
    
    Converts the collection to a dictionary.Name Type Default Description keySelectorkeySelector A function that returns the key value from an element of the inner collection. elementSelectorselector optional A function that projects an element into a new form. eqComparerequalityComparer (===) optional An object that tests if two keys are equal. Returns:Type Description arrgh.Dictionary - Returns a dictionary containing the keys and elements that are selected from the input collection. 
- 
    inherited toList(){arrgh.List}
- 
    
    Converts the collection to a list.Returns:Type Description arrgh.List - Returns a List containing all the elements from the input collection. 
- 
    inherited toLookup(keySelector, elementSelector, eqComparer){arrgh.Lookup}
- 
    
    Converts the collection to a collection of keys each mapped to one or more values.Name Type Default Description keySelectorkeySelector A function that returns the key value from an element of the inner collection. elementSelectorselector optional A function that projects an element into a new form. eqComparerequalityComparer (===) optional An object that tests if two keys are equal. Returns:Type Description arrgh.Lookup - Returns a collection of keys mapped to one or more values. 
- 
    inherited union(other, eqComparer){arrgh.Enumerable}
- 
    
    Produces the set union of two collections by using the default or a custom equality comparer to compare values.Name Type Default Description otherarrgh.Enumerable The other collection to union with. eqComparerequalityComparer (===) optional An object that tests if two elements are equal. Returns:Type Description arrgh.Enumerable - A collection that contains distinct element from the two input collections. 
- 
    inherited unionAll(other){arrgh.Enumerable}
- 
    
    Concatenates two collections.Name Type Description otherother The collection to concatenate to the current collection. Returns:Type Description arrgh.Enumerable - A collection that contains all the elements of both the current and the other collection. 
- 
    inherited where(predicate){arrgh.Enumerable}
- 
    
    Filters a collection of values based on a predicate. Each element's index is used in the logic of the predicate function.Name Type Description predicateindexPredicate A function to test each element for a condition. Returns:Type Description arrgh.Enumerable - A collection that contains all elements that satisfy the condition. 
- 
    inherited zip(other, resultSelector){arrgh.Enumerable}
- 
    
    Applies a specified function to the corresponding elements of two collections, producing a collection of the results.Name Type Description otherarrgh.Enumerable The collection to merge with. resultSelectorzipResultSelector A function that creates a result value from two elements. Returns:Type Description arrgh.Enumerable - A collection that contains merged elements of two input collections.