Click or drag to resize

ListCollectionT Class

A faster and functionally equivalent implementation of CollectionT
Inheritance Hierarchy

Namespace: GSF.Collections
Assembly: GSF.Core (in GSF.Core.dll) Version: 2.4.181-beta
Syntax
public class ListCollection<T> : Collection<T>, 
	IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable, IList, 
	ICollection, IReadOnlyList<T>, IReadOnlyCollection<T>
View Source

Type Parameters

T
The type of the element in the collection

The ListCollectionT type exposes the following members.

Constructors
 NameDescription
Public methodListCollectionT Creates a ListCollectionT
Public methodListCollectionT(ListT) Creates a ListCollectionT
Top
Properties
 NameDescription
Public propertyCount Gets the number of elements contained in the ICollectionT.
Public propertyItem Gets or sets the element at the specified index.
Protected propertyItems Gets a IListT wrapper around the CollectionT.
Top
Methods
 NameDescription
Public methodAdd Adds an item to the ICollectionT.
Public methodClear Removes all items from the ICollectionT.
Protected methodClearItems Removes all elements from the CollectionT.
(Overrides CollectionTClearItems)
Public methodContains Determines whether the ICollectionT contains a specific value.
Public methodCopyTo Copies the elements of the ICollectionT to an Array, starting at a particular Array index.
Public methodEqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
Public methodGetEnumerator Returns an enumerator that iterates through the CollectionT.
Public methodGetHashCodeServes as the default hash function.
(Inherited from Object)
Public methodGetTypeGets the Type of the current instance.
(Inherited from Object)
Public methodIndexOf Determines the index of a specific item in the IListT.
Public methodInsert Inserts an item to the IListT at the specified index.
Protected methodInsertItem Inserts an element into the CollectionT at the specified index.
(Overrides CollectionTInsertItem(Int32, T))
Protected methodMemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
Public methodRemove Removes the first occurrence of a specific object from the ICollectionT.
Public methodRemoveAt Removes the element at the specified index of the CollectionT.
Protected methodRemoveItem Removes the element at the specified index of the CollectionT.
(Overrides CollectionTRemoveItem(Int32))
Protected methodSetItem Replaces the element at the specified index.
(Overrides CollectionTSetItem(Int32, T))
Public methodToStringReturns a string that represents the current object.
(Inherited from Object)
Top
Extension Methods
 NameDescription
Public Extension MethodAddRangeT Adds the specified items to the collection.
(Defined by CollectionExtensions)
Public Extension MethodAllParallelT Determines whether all elements of a sequence satisfy a condition with each item being tested in parallel.
(Defined by CollectionExtensions)
Public Extension MethodDistinctByT, TKey Returns only the elements whose keys are distinct.
(Defined by CollectionExtensions)
Public Extension MethodGetEnumValueOrDefault Gets the enumeration constant for value, if defined in the enumeration, or a default value.
(Defined by EnumExtensions)
Public Extension MethodGetEnumValueOrDefaultT Gets the enumeration constant for this value, if defined in the enumeration, or a default value.
(Defined by EnumExtensions)
Public Extension MethodGetRangeT Returns elements in the specified range from the collection.
(Defined by CollectionExtensions)
Public Extension MethodIndexOfT Returns the index of the first element of the sequence that satisfies a condition or -1 if no such element is found.
(Defined by CollectionExtensions)
Public Extension MethodLoadDelimitedStringTAppends items parsed from delimited string, created with ToDelimitedString, using the default delimiter ("|") into the given list.
(Defined by CollectionExtensions)
Public Extension MethodLoadDelimitedStringTAppends items parsed from delimited string, created with ToDelimitedString, into the given list.
(Defined by CollectionExtensions)
Public Extension MethodLoadDelimitedStringTAppends items parsed from delimited string, created with ToDelimitedString, into the given list.
(Defined by CollectionExtensions)
Public Extension MethodMajorityT Returns the majority value in the collection, or default type value if no item represents the majority.
(Defined by CollectionExtensions)
Public Extension MethodMajorityT Returns the majority value in the collection, or defaultValue if no item represents the majority.
(Defined by CollectionExtensions)
Public Extension MethodMajorityByT, TKey Returns the majority value in the collection, or default type value if no item represents the majority.
(Defined by CollectionExtensions)
Public Extension MethodMajorityByT, TKey Returns the majority value in the collection, or defaultValue if no item represents the majority.
(Defined by CollectionExtensions)
Public Extension MethodMaxTReturns the largest item from the enumeration.
(Defined by CollectionExtensions)
Public Extension MethodMaxTReturns the largest item from the enumeration.
(Defined by CollectionExtensions)
Public Extension MethodMaxByT, TKeySelects the largest item from the enumeration.
(Defined by CollectionExtensions)
Public Extension MethodMedianT Gets the median item(s) from an enumeration, i.e., one return item for odd lengths, two for even lengths.
(Defined by CollectionExtensions)
Public Extension MethodMinTReturns the smallest item from the enumeration.
(Defined by CollectionExtensions)
Public Extension MethodMinTReturns the smallest item from the enumeration.
(Defined by CollectionExtensions)
Public Extension MethodMinByT, TKeySelects the smallest item from the enumeration.
(Defined by CollectionExtensions)
Public Extension MethodMinorityT Returns the minority value in the collection, or default type value if no item represents the minority.
(Defined by CollectionExtensions)
Public Extension MethodMinorityT Returns the minority value in the collection, or defaultValue if no item represents the minority.
(Defined by CollectionExtensions)
Public Extension MethodMinorityByT, TKey Returns the minority value in the collection, or default type value if no item represents the majority.
(Defined by CollectionExtensions)
Public Extension MethodMinorityByT, TKey Returns the minority value in the collection, or defaultValue if no item represents the majority.
(Defined by CollectionExtensions)
Public Extension MethodScrambleT Rearranges all the elements in the list into a highly-random order.
(Defined by CollectionExtensions)
Public Extension MethodScrambleT Rearranges all the elements in the list into a repeatable pseudo-random order.
(Defined by CollectionExtensions)
Public Extension MethodStandardDeviationT Computes the standard deviation over a sequence of Double values.
(Defined by NumericalAnalysisExtensions)
Public Extension MethodStandardDeviationT Computes the standard deviation over a sequence of Decimal values.
(Defined by NumericalAnalysisExtensions)
Public Extension MethodStandardDeviationT Computes the standard deviation over a sequence of Single values.
(Defined by NumericalAnalysisExtensions)
Public Extension MethodToDelimitedStringTConverts an enumeration to a string, using the default delimiter ("|") that can later be converted back to a list using LoadDelimitedString.
(Defined by CollectionExtensions)
Public Extension MethodToDelimitedStringTConverts an enumeration to a string that can later be converted back to a list using LoadDelimitedString.
(Defined by CollectionExtensions)
Public Extension MethodToDelimitedStringTConverts an enumeration to a string that can later be converted back to a list using LoadDelimitedString.
(Defined by CollectionExtensions)
Public Extension MethodToPagedListT Gets a PagedListT to paginate source enumeration for a given page and specified pageSize.
(Defined by CollectionExtensions)
Public Extension MethodUnscrambleT Rearranges all the elements in the list previously scrambled with ScrambleTSource(IListTSource, Int32) back into their original order.
(Defined by CollectionExtensions)
Public Extension MethodUpdateRangeT Updates collection starting at the index with the specified items.
(Defined by CollectionExtensions)
Top
Remarks

CollectionT is based upon an IListT. This means any simple call to the class is a function call that cannot be in-lined. This implementation forces the underlying item to be ListT and shadows many of the methods to call ListT instead of IListT.

Since this class references the same underlying ListT object, it can be successfully implemented as a ListCollectionT or casted it its underlying type CollectionT.

Profiling this class yield a ForEach loop and For loop that executes between 2-4 times faster than CollectionT. This depends on the number of items in the list. The fewer the faster. Other operations such as Add/Insert/Remove are closer to 50% faster. Count is now in-lined (~20 times faster).

This performance is negated if accessing this class via the IList interface. When possible, use only strongly typed names.

See Also