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 >.