| File: BackReferenceCollection.cs | Web Access |
| Project: src\aspnetcore\src\Middleware\Rewrite\src\Microsoft.AspNetCore.Rewrite.csproj (Microsoft.AspNetCore.Rewrite) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Text.RegularExpressions; namespace Microsoft.AspNetCore.Rewrite; internal sealed class BackReferenceCollection { private readonly List<string> _backReferences = new List<string>(); public BackReferenceCollection(GroupCollection references) { if (references != null) { for (var i = 0; i < references.Count; i++) { _backReferences.Add(references[i].Value); } } } public BackReferenceCollection(string reference) { _backReferences.Add(reference); } public string this[int index] { get { if (index < _backReferences.Count) { return _backReferences[index]; } else { throw new ArgumentOutOfRangeException(null, $"Cannot access back reference at index {index}. Only {_backReferences.Count} back references were captured."); } } } public void Add(BackReferenceCollection references) { if (references != null) { _backReferences.AddRange(references._backReferences); } } }