public PathSegments(IReadOnlyList <string> segments, char separator) { _segments = segments.CheckNotNull(nameof(segments)); if (_segments.Count == 0) { throw new ArgumentException(nameof(segments), "must have at least one segment"); } Bugs.Assert(segments.All(s => s != null)); Separator = separator; }