Example #1
0
        public static int Split(ReadOnlySpan <char> span, char separator, LegCounter legCounter)
        {
            int legs = 0;

            while (span.Length > 0)
            {
                int pos = span.IndexOf(separator);
                if (pos > 0)
                {
                    ReadOnlySpan <char> animal = span.Slice(0, pos);
                    legs += legCounter(animal);
                }
                else
                {
                    legs += legCounter(span);
                    break;
                }
                span = span.Slice(pos + 1);
            }
            return(legs);
        }
        public static int Split(ReadOnlyMemory <char> mem, char c, LegCounter visitor)
        {
            int legs = 0;

            while (mem.Length > 0)
            {
                int pos = mem.Span.IndexOf(c);
                if (pos > 0)
                {
                    ReadOnlyMemory <char> animal = mem.Slice(0, pos);
                    legs += visitor(animal);
                }
                else
                {
                    legs += visitor(mem);
                    break;
                }

                mem = mem.Slice(pos + 1);
            }
            return(legs);
        }
Example #3
0
        public static int Split(string s, char c, LegCounter legCounter)
        {
            int legs  = 0;
            int start = 0;

            while (s.Length > 0)
            {
                int pos = s.IndexOf(c, start);
                if (pos > 0)
                {
                    string animal = s.Substring(start, pos - start);
                    legs += legCounter(animal);
                }
                else
                {
                    break;
                }

                start = pos + 1;
            }
            return(legs);
        }
Example #4
0
 public LegServiceSpan()
 {
     _legCounter = GetNumberOfLegs;
 }
 public LegServiceMemoryDelegate()
 {
     _legCounter = GetNumberOfLegs;
 }