SyncOppositeList <IPage> ReadList(string line, Func <IPage, ICollection <IPage> > oppositeList, Action altered) { var pagesIds = (line ?? "").Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries); var pages = pagesIds.Select(x => ModelProvider.GetPage(x)).ToArray(); return(new SyncOppositeList <IPage>(this, oppositeList, altered, pages)); }