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));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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));
        }