Enhanced C#
Language of your choice: library documentation
|
Helper type returned from LCExt.AsListSource{T}. More...
Helper type returned from LCExt.AsListSource{T}.
A read-only wrapper that implements ICollection and ISource.
Properties | |
int | Count [get] |
T | this[int index] [get, set] |
T | this[int index, T defaultValue] [get] |
bool | IsReadOnly [get] |
Public Member Functions | |
ListAsListSource (IList< T > obj) | |
bool | Contains (T item) |
T | TryGet (int index, out bool fail) |
Gets the item at the specified index, and does not throw an exception on failure. More... | |
int | IndexOf (T item) |
Slice_< T > | Slice (int start, int count) |
Returns a sub-range of this list. More... | |
void | Insert (int index, T item) |
void | RemoveAt (int index) |
void | Add (T item) |
void | Clear () |
void | CopyTo (T[] array, int arrayIndex) |
bool | Remove (T item) |
IEnumerator< T > | GetEnumerator () |
Public Member Functions inherited from Loyc.WrapperBase< T > | |
override bool | Equals (object obj) |
Returns true iff the parameter 'obj' is a wrapper around the same object that this object wraps. More... | |
override int | GetHashCode () |
Returns the hashcode of the wrapped object. More... | |
override string | ToString () |
Returns ToString() of the wrapped object. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from Loyc.WrapperBase< T > | |
WrapperBase (T wrappedObject) | |
Protected fields inherited from Loyc.WrapperBase< T > | |
T | _obj |
Protected static fields inherited from Loyc.WrapperBase< T > | |
static readonly EqualityComparer< T > | TComp = EqualityComparer<T>.Default |
|
inline |
Returns a sub-range of this list.
start | The new range will start at this index in the current list (this location will be index [0] in the new range). |
count | The desired number of elements in the new range, or int.MaxValue to get all elements until the end of the list. |
ArgumentException | The start index was below zero. |
The (start, count) range is allowed to be invalid, as long as start is zero or above.
this.Count - start
. Implementation note: do not compute (start + count) because it may overflow. Instead, test whether (count > this.Count - start). Most collections should use the following implementation:
IRange<T> IListSource<T>.Slice(int start, int count) { return Slice(start, count); } public Slice_<T> Slice(int start, int count) { return new Slice_<T>(this, start, count); }
Implements Loyc.Collections.IListSource< out T >.
|
inline |
Gets the item at the specified index, and does not throw an exception on failure.
index | An index in the range 0 to Count-1. |
fail | A flag that is set on failure. |
In my original design, the caller could provide a value to return on failure, but this would not allow T to be marked as "out" in C# 4. For the same reason, we cannot have a ref/out T parameter. Instead, the following extension methods are provided:
Implements Loyc.Collections.IListSource< out T >.