public override FluentString To(NumericStringSelector context)
 {
     return base.To(context);
 }
 public override FluentString From(NumericStringSelector context)
 {
     return base.From(context);
 }
 /// <summary>
 /// Reverses the previous NumberStringSelector.
 /// For a string = "aaaa", 2.nd("a") refers to index 1 where as 2.nd("a").Last() refers to index 2
 /// </summary>
 /// <returns>
 ///     new instance
 /// </returns>
 public NumericStringSelector Last()
 {
     NumericStringSelector clone = new NumericStringSelector(Number, SearchString, ContextDirection.Backward);
     return clone;
 }
 public static NumericStringSelector operator +(int n, NumericStringSelector selector)
 {
     NumericStringSelector clone = new NumericStringSelector(selector.Number, selector.SearchString, selector.Direction, selector.Skipped + n);
     return clone;
 }
示例#5
0
 private FluentString PerformSubstring(NumericStringSelector context, bool isFrom, bool fromBeginning)
 {
     int nIndex = -1;
     FluentString result = null;
     switch (context.Direction)
     {
         case NumericStringSelector.ContextDirection.Forward:
             nIndex = StringHelper.IndexOf(OriginalString, context.SearchString, BeginIndex, context.Number, EndIndex);
             break;
         case NumericStringSelector.ContextDirection.Backward:
             nIndex = StringHelper.ReverseIndexOf(OriginalString, context.SearchString, EndIndex, context.Number);
             break;
     }
     //if we can't find something we want an exception always
     if (nIndex == -1)
     {
         throw new ArgumentOutOfRangeException("Could not find " + context.SearchString);
     }
     else
     {
         nIndex += context.Skipped;
         if (isFrom)
         {
             //if last operation was from, we want to change start
             result = new FluentString(OriginalString, PreviousOperation, nIndex, EndIndex);
         }
         else
         {
             //if last operation was to, we want to change the end
             result = new FluentString(OriginalString, PreviousOperation, BeginIndex, nIndex);
         }
     }
     return result;
 }
示例#6
0
 /// <summary>
 /// Creates a new instance of FluentString that represents a substring that ends with some instance of a string as represented by context
 /// 
 /// </summary>
 /// <param name="context">
 ///     Indicates the n-th occurence of a string from which the substring should end.
 ///     i.e. 2.nd("foo")
 /// </param>
 /// <returns>
 ///     A new instance of FluentString.
 /// </returns>
 /// <example>
 ///    "abab".To(2.nd("a")) represents "aba"
 /// </example>
 public virtual FluentString To(NumericStringSelector context)
 {
     return PerformSubstring(context, false, false);
 }
示例#7
0
 public static NumericStringSelector The(NumericStringSelector selection)
 {
     int cSkipped = selection.SearchString.Length;
     return new NumericStringSelector(selection.Number, selection.SearchString, selection.Direction, -1);
 }