public MultiStringSplitEnumerable Split(params string[] separators) { if (separators == null) { throw new ArgumentNullException("separators"); } StringChunk[] arr = new StringChunk[separators.Length]; for (int i = 0; i < separators.Length; i++) { arr[i] = (StringChunk)separators[i]; } return(Split(arr)); }
public int IndexOf(StringChunk value) { if (value.length > this.length) { return(-1); } var e1 = this.GetEnumerator(); var e2 = value.GetEnumerator(); int len = this.length - value.length + 1; for (int i = 0; i < len; i++) { if (EqualsChunk(ref e1, ref e2, value.length)) { return(i); } else { e2.Reset(); e1.Position = i + 1; } } return(-1); }
public static TRet Create <TRet>(ref StringChunk reference, Func <StringReference, TRet> outputFunc) { return(ReferenceAccessor.Create(ref reference, r => outputFunc(Create(r)))); }
public static void Create(ref StringChunk reference, Action <StringReference> outputAct) { ReferenceAccessor.Create(ref reference, r => outputAct(Create(r))); }
public override void Remove(int startIndex, int count) { Item = Item.ToString().Remove(startIndex, count); }
public override void Replace(string oldValue, string newValue) { Item = Item.ToString().Replace(oldValue, newValue); }
public bool Contains(StringChunk value) { return(IndexOf(value) != -1); }
public int CompareTo(StringChunk other) { return(CompareChunk(this.GetEnumerator(), other.GetEnumerator())); }
public void Dispose() { disposed = true; Source = default(StringChunk); }
internal Enumerator(ref StringChunk source) : this() { this.Source = source; this.offset = -1; }
public bool Equals(StringChunk other) { return(EqualsChunk(this.GetEnumerator(), other.GetEnumerator())); }
public SingleStringSplitEnumerable Split(StringChunk separator) { return(new SingleStringSplitEnumerable(ref this, ref separator)); }