<PackageReference Include="Microsoft.Extensions.Configuration" Version="10.0.0-preview.1.25080.5" />

InternalConfigurationRootExtensions

Extensions method for IConfigurationRoot
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; namespace Microsoft.Extensions.Configuration { internal static class InternalConfigurationRootExtensions { [NullableContext(1)] internal static IEnumerable<IConfigurationSection> GetChildrenImplementation(this IConfigurationRoot root, [Nullable(2)] string path) { using (ReferenceCountedProviders referenceCountedProviders = (root as ConfigurationManager)?.GetProvidersReference()) { IEnumerable<IConfigurationProvider> enumerable = referenceCountedProviders?.Providers; IEnumerable<IConfigurationSection> enumerable2 = from key in (enumerable ?? root.Providers).Aggregate(Enumerable.Empty<string>(), (IEnumerable<string> seed, IConfigurationProvider source) => source.GetChildKeys(seed, path)).Distinct(StringComparer.OrdinalIgnoreCase) select root.GetSection((path == null) ? key : (path + ConfigurationPath.KeyDelimiter + key)); if (referenceCountedProviders != null) return enumerable2.ToList(); return enumerable2; } } } }