|
Enhanced C#
Language of your choice: library documentation
|
A random-access slice of System.String. More...
A random-access slice of System.String.
Where possible, it is recommended that you use UString instead.
Note to self: I forgot why I made this type as a distinct entity from UString. Consider attempting to eliminate StringSlice.
Public fields | |
| int | _count |
Public static fields | |
| static StringSlice | Empty = new StringSlice("") |
Properties | |
| string | InternalString [get] |
| int | InternalStart [get] |
| int | Length [get] |
| int | Count [get] |
| bool | IsEmpty [get] |
| char | Front [get] |
| char | Back [get] |
| char | this[int index] [get] |
| char | this[int index, char defaultValue] [get] |
| int | this[int index, int defaultValue] [get] |
Properties inherited from Loyc.Collections.IBRange< out T > | |
| T | Back [get] |
| Returns the value of the last item in the range. More... | |
Properties inherited from Loyc.Collections.IFRange< out T > | |
| T | Front [get] |
| Returns the first value in the range, without popping it. More... | |
Properties inherited from Loyc.Collections.IIsEmpty | |
| bool | IsEmpty [get] |
Public Member Functions | |
| StringSlice (string list, int start, int count) | |
| Initializes a StringSlice. More... | |
| StringSlice (string str) | |
| char | PopFront (out bool fail) |
| Removes the first item from the range and returns it. More... | |
| char | PopBack (out bool fail) |
| Removes the last item from the range and returns it. More... | |
|
IFRange< char > ICloneable < IFRange< char > >. | Clone () |
|
IBRange< char > ICloneable < IBRange< char > >. | Clone () |
|
IRange< char > ICloneable < IRange< char > >. | Clone () |
| StringSlice | Clone () |
|
IEnumerator< char > IEnumerable< char >. | GetEnumerator () |
|
System.Collections.IEnumerator System.Collections.IEnumerable. | GetEnumerator () |
|
RangeEnumerator< StringSlice, char > | GetEnumerator () |
| char | TryGet (int index, out bool fail) |
| Gets the item at the specified index, and does not throw an exception on failure. More... | |
| IRange< char > IListSource< char >. | Slice (int start, int count) |
| Returns a substring from the character source. If some of the requested characters are past the end of the stream, the string is truncated to the available number of characters. More... | |
| StringSlice | Slice (int start, int count) |
| Returns a substring from the character source. If some of the requested characters are past the end of the stream, the string is truncated to the available number of characters. More... | |
| override int | GetHashCode () |
| override bool | Equals (object obj) |
| bool | Equals (StringSlice other) |
| override string | ToString () |
Static Public Member Functions | |
| static implicit | operator StringSlice (UString s) |
| static implicit | operator StringSlice (string s) |
|
inline |
Initializes a StringSlice.
| ArgumentException | The start index was below zero. |
The (start, count) range is allowed to be invalid, as long as 'start' is zero or above.
list.Length - start.
|
inline |
Removes the last item from the range and returns it.
| fail | Receives the current value of IsEmpty. |
The remarks of IFRange{T}.PopFront apply to this method.
Implements Loyc.Collections.IBRange< out T >.
|
inline |
Removes the first item from the range and returns it.
| fail | Receives the current value of IIsEmpty.IsEmpty. |
This method is a little unweildy in plain C#, but in EC# it will be a bit more convenient to use via extension methods like PopFirst(ref this Range range, T defaultValue) and PopFirst(ref this Range range), which are illegal in plain C#.
I wanted to give this method the signature "bool PopFirst(out T first)" but the generic parameter "T" is covariant, i.e. it is marked "out T" which, ironically, is not compatible with "out T" parameters, only with return values.
Implements Loyc.Collections.IFRange< out T >.
|
inline |
Returns a substring from the character source. If some of the requested characters are past the end of the stream, the string is truncated to the available number of characters.
| startIndex | Index of first character to return. If startIndex >= Count, an empty string is returned. |
| length | Number of characters desired. |
| ArgumentException | Thrown if startIndex or length are negative. |
Implements Loyc.Collections.ICharSource.
References Loyc.Collections.StringSlice.Slice().
Referenced by Loyc.Collections.StringSlice.Slice().
|
inline |
Returns a substring from the character source. If some of the requested characters are past the end of the stream, the string is truncated to the available number of characters.
| startIndex | Index of first character to return. If startIndex >= Count, an empty string is returned. |
| length | Number of characters desired. |
| ArgumentException | Thrown if startIndex or length are negative. |
Implements Loyc.Collections.ICharSource.
|
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 >.
1.8.7