|
3 | 3 |
|
4 | 4 | using System.Buffers; |
5 | 5 | using System.Diagnostics.CodeAnalysis; |
| 6 | +using System.Linq; |
6 | 7 | using System.Runtime.CompilerServices; |
7 | 8 |
|
8 | 9 | namespace Microsoft.AspNetCore.Http.Extensions; |
@@ -203,54 +204,7 @@ public static string GetEncodedPathAndQuery(this HttpRequest request) |
203 | 204 | /// suitable only for display.</returns> |
204 | 205 | public static string GetDisplayUrl(this HttpRequest request) |
205 | 206 | { |
206 | | - var scheme = request.Scheme ?? string.Empty; |
207 | | - var host = request.Host.Value ?? string.Empty; |
208 | | - var pathBase = request.PathBase.Value ?? string.Empty; |
209 | | - var path = request.Path.Value ?? string.Empty; |
210 | | - var queryString = request.QueryString.Value ?? string.Empty; |
211 | | - |
212 | | - var length = scheme.Length + SchemeDelimiter.Length + host.Length |
213 | | - + pathBase.Length + path.Length + queryString.Length; |
214 | | - |
215 | | - return string.Create( |
216 | | - length, |
217 | | - (scheme, host, pathBase, path, queryString), |
218 | | - static (buffer, uriParts) => |
219 | | - { |
220 | | - var (scheme, host, pathBase, path, queryString) = uriParts; |
221 | | - |
222 | | - if (scheme.Length > 0) |
223 | | - { |
224 | | - scheme.CopyTo(buffer); |
225 | | - buffer = buffer.Slice(scheme.Length); |
226 | | - } |
227 | | - |
228 | | - SchemeDelimiter.CopyTo(buffer); |
229 | | - buffer = buffer.Slice(SchemeDelimiter.Length); |
230 | | - |
231 | | - if (host.Length > 0) |
232 | | - { |
233 | | - host.CopyTo(buffer); |
234 | | - buffer = buffer.Slice(host.Length); |
235 | | - } |
236 | | - |
237 | | - if (pathBase.Length > 0) |
238 | | - { |
239 | | - pathBase.CopyTo(buffer); |
240 | | - buffer = buffer.Slice(pathBase.Length); |
241 | | - } |
242 | | - |
243 | | - if (path.Length > 0) |
244 | | - { |
245 | | - path.CopyTo(buffer); |
246 | | - buffer = buffer.Slice(path.Length); |
247 | | - } |
248 | | - |
249 | | - if (queryString.Length > 0) |
250 | | - { |
251 | | - queryString.CopyTo(buffer); |
252 | | - } |
253 | | - }); |
| 207 | + return string.Concat((ReadOnlySpan<string>)[request.Scheme, SchemeDelimiter, request.Host.Value, request.PathBase.Value, request.Path.Value, request.QueryString.Value]); |
254 | 208 | } |
255 | 209 |
|
256 | 210 | /// <summary> |
|
0 commit comments