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); }
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); }
public LegServiceSpan() { _legCounter = GetNumberOfLegs; }
public LegServiceMemoryDelegate() { _legCounter = GetNumberOfLegs; }