private IEnumerable <TValue> InternalSplitToEnumerable2 <TValue>(string originalString, Func <string, TValue> to) { if (string.IsNullOrWhiteSpace(originalString)) { return(Enumerable.Empty <TValue>()); } var result = new List <string>(); var middle = SplitterUtils.SplitByFixedLength(originalString, _fixedLengthPattern); if (Options.LimitLength >= 0) { result.AddRange(SplitterUtils.OptionalRange(Options, middle), Options.LimitLength); } else { result.AddRange(SplitterUtils.OptionalRange(Options, middle)); } return(result.Select(to)); }
private IEnumerable <KeyValuePair <string, TValue> > InternalSplitToKeyValuePair <TValue>(string originalString, Func <string, TValue> to) { if (string.IsNullOrWhiteSpace(originalString)) { return(Enumerable.Empty <KeyValuePair <string, TValue> >()); } var result = new List <KeyValuePair <string, TValue> >(); var middle = _fixedLengthMode ? ((IFixedLengthSplitter)this).Split(originalString) : ((ISplitter)this).Split(originalString); foreach (var item in middle) { var(k, v) = SplitterUtils.SplitMap(Options, item); result.Add(SplitterUtils.OptionalMap(Options, k, v, to)); } return(result); }
private IEnumerable <TValue> InternalSplitToEnumerable <TValue>(string originalString, Func <string, TValue> to) { if (string.IsNullOrWhiteSpace(originalString)) { return(Enumerable.Empty <TValue>()); } var result = new List <string>(); var middle = _regexMode ? SplitterUtils.SplitPatternList(Options, originalString, _pattern, _regexPattern) : SplitterUtils.SplitList(Options, originalString, _on); if (_doesUseInLimitedMode()) { result.AddRange(SplitterUtils.OptionalRange(Options, middle), Options.LimitLength); } else { result.AddRange(SplitterUtils.OptionalRange(Options, middle)); } return(result.Select(to)); }