1 write to Parts
Microsoft.AspNetCore.Routing (1)
Patterns\RoutePatternPathSegment.cs (1)
28Parts = parts;
76 references to Parts
Microsoft.AspNetCore.Mvc.Core (2)
Routing\RoutePatternWriter.cs (2)
26for (var i = 0; i < segment.Parts.Count; i++) 28WriteString(sb, segment.Parts[i]);
Microsoft.AspNetCore.OpenApi (1)
Extensions\ApiDescriptionExtensions.cs (1)
56foreach (var part in segment.Parts)
Microsoft.AspNetCore.Routing (48)
Matching\DfaMatcherBuilder.cs (7)
260var part = segment.Parts[0]; 383for (var i = 0; i < segment.Parts.Count; i++) 385var segmentPart = segment.Parts[i]; 396Debug.Assert(i == segment.Parts.Count - 1 && partParameter.IsOptional); 524if (lastSegment.IsSimple && lastSegment.Parts[0] is RoutePatternParameterPart parameterPart && parameterPart.IsCatchAll) 761var parameterPart = segment.Parts[0] as RoutePatternParameterPart; 859var parameterPart = segment.Parts[0] as RoutePatternParameterPart;
Patterns\DefaultRoutePatternTransformer.cs (3)
223for (var j = 0; j < segment.Parts.Count; j++) 225if (object.ReferenceEquals(parameter, segment.Parts[j])) 230var updatedParts = new List<RoutePatternPart>(segment.Parts);
Patterns\RoutePatternFactory.cs (5)
476for (var j = 0; j < segment.Parts.Count; j++) 478if (segment.Parts[j] is RoutePatternParameterPart parameter) 546for (var i = 0; i < segment.Parts.Count; i++) 548var part = segment.Parts[i]; 555updatedParts = segment.Parts.ToArray();
Patterns\RoutePatternMatcher.cs (21)
44var part = segment.Parts[0]; 93else if (pathSegment.IsSimple && pathSegment.Parts[0] is RoutePatternParameterPart parameter && parameter.IsCatchAll) 120var part = pathSegment.Parts[0]; 171var part = pathSegment.Parts[0]; 204if (pathSegment.IsSimple && !pathSegment.Parts[0].IsParameter) 207if (pathSegment.Parts[0].IsLiteral) 209var part = (RoutePatternLiteralPart)pathSegment.Parts[0]; 218var part = (RoutePatternSeparatorPart)pathSegment.Parts[0]; 226else if (pathSegment.IsSimple && pathSegment.Parts[0].IsParameter) 229var part = (RoutePatternParameterPart)pathSegment.Parts[0]; 249if (pathSegment.IsSimple && pathSegment.Parts[0] is RoutePatternParameterPart parameter && parameter.IsCatchAll) 266else if (pathSegment.IsSimple && pathSegment.Parts[0].IsParameter) 270parameter = (RoutePatternParameterPart)pathSegment.Parts[0]; 291var indexOfLastSegment = routeSegment.Parts.Count - 1; 302if (routeSegment.Parts[indexOfLastSegment] is RoutePatternParameterPart parameter && parameter.IsOptional && 303routeSegment.Parts[indexOfLastSegment - 1].IsSeparator) 311var separator = (RoutePatternSeparatorPart)routeSegment.Parts[indexOfLastSegment - 1]; 339Debug.Assert(routeSegment.Parts.Count > 1); 353var part = routeSegment.Parts[indexOfLastSegmentUsed]; 402if (indexOfLastSegmentUsed == (routeSegment.Parts.Count - 1)) 491if (lastIndex == 0 || routeSegment.Parts[0].IsParameter)
Patterns\RoutePatternParser.cs (3)
322for (var j = 0; j < segment.Parts.Count; j++) 324var part = segment.Parts[j]; 327(i != segments.Count - 1 || j != segment.Parts.Count - 1))
Patterns\RoutePatternPathSegment.cs (2)
35public bool IsSimple => Parts.Count == 1; 44return DebuggerToString(Parts);
Template\RoutePrecedence.cs (4)
179if (pathSegment.Parts.Count > 1) 184var part = pathSegment.Parts[0]; 251if (pathSegment.Parts.Count > 1) 257var part = pathSegment.Parts[0];
Template\TemplateBinder.cs (1)
521var parts = segments[i].Parts;
Template\TemplateSegment.cs (2)
32var partCount = other.Parts.Count; 36Parts.Add(new TemplatePart(other.Parts[i]));
Microsoft.AspNetCore.Routing.Microbenchmarks (1)
src\Http\Routing\test\UnitTests\Matching\BarebonesMatcherBuilder.cs (1)
25.Select(s => s.IsSimple && s.Parts[0] is RoutePatternLiteralPart literalPart ? literalPart.Content : null)
Microsoft.AspNetCore.Routing.Tests (24)
Matching\BarebonesMatcherBuilder.cs (1)
25.Select(s => s.IsSimple && s.Parts[0] is RoutePatternLiteralPart literalPart ? literalPart.Content : null)
Patterns\RoutePatternFactoryTest.cs (9)
690Assert.Equal(3, actual.Parts.Count); 691Assert.Same(paramPartB, actual.Parts[0]); 692Assert.Same(paramPartC, actual.Parts[1]); 693Assert.Same(paramPartD, actual.Parts[2]); 711Assert.Equal(3, actual.Parts.Count); 712Assert.Same(paramPartB, actual.Parts[0]); 713Assert.Same(paramPartC, actual.Parts[1]); 714Assert.Same(paramPartD, actual.Parts[2]); 741var part = Assert.IsType<RoutePatternLiteralPart>(Assert.Single(segment.Parts));
Patterns\RoutePatternParserTest.cs (5)
666if (x.PathSegments[i].Parts.Count != y.PathSegments[i].Parts.Count) 671for (int j = 0; j < x.PathSegments[i].Parts.Count; j++) 673if (!Equals(x.PathSegments[i].Parts[j], y.PathSegments[i].Parts[j]))
Template\TemplateSegmentTest.cs (9)
36Assert.Equal(4, routePatternPathSegment.Parts.Count); 37Assert.IsType<RoutePatternParameterPart>(routePatternPathSegment.Parts[0]); 38Assert.Equal(paramPartC.Name, ((RoutePatternParameterPart)routePatternPathSegment.Parts[0]).Name); 39Assert.IsType<RoutePatternLiteralPart>(routePatternPathSegment.Parts[1]); 40Assert.Equal(literalPartA.Content, ((RoutePatternLiteralPart)routePatternPathSegment.Parts[1]).Content); 41Assert.IsType<RoutePatternSeparatorPart>(routePatternPathSegment.Parts[2]); 42Assert.Equal(separatorPartE.Content, ((RoutePatternSeparatorPart)routePatternPathSegment.Parts[2]).Content); 43Assert.IsType<RoutePatternParameterPart>(routePatternPathSegment.Parts[3]); 44Assert.Equal(paramPartB.Name, ((RoutePatternParameterPart)routePatternPathSegment.Parts[3]).Name);