private List<NSRange> DoGetSubstrings(NSObject inStr, string inSubstr) { var ranges = new List<NSRange>(); var str = (inStr.isKindOfClass(NSString.Class) ? inStr : inStr.Call("string")).To<NSString>(); var substr = NSString.Create(inSubstr); NSRange within = new NSRange(0, (int) str.length()); while (within.location < str.length()) { NSRange range = str.rangeOfString_options_range(substr, Enums.NSLiteralSearch, within); if (range.length == 0) break; within = new NSRange(range.location + range.length, (int) (str.length() - (range.location + range.length))); ranges.Add(range); } return ranges; }