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

ConfigurationKeyComparer

public class ConfigurationKeyComparer : IComparer<string>
Implements IComparer to order configuration keys.
using System; using System.Collections.Generic; using System.Runtime.CompilerServices; namespace Microsoft.Extensions.Configuration { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public class ConfigurationKeyComparer : IComparer<string> { private const char KeyDelimiter = ':'; public static ConfigurationKeyComparer Instance { get; } = new ConfigurationKeyComparer(); internal static Comparison<string> Comparison { get; } [System.Runtime.CompilerServices.NullableContext(2)] public int Compare(string x, string y) { ReadOnlySpan<char> readOnlySpan = MemoryExtensions.AsSpan(x); ReadOnlySpan<char> readOnlySpan2 = MemoryExtensions.AsSpan(y); readOnlySpan = <Compare>g__SkipAheadOnDelimiter|7_0(readOnlySpan); readOnlySpan2 = <Compare>g__SkipAheadOnDelimiter|7_0(readOnlySpan2); while (!readOnlySpan.IsEmpty && !readOnlySpan2.IsEmpty) { int num = readOnlySpan.IndexOf(':'); int num2 = readOnlySpan2.IndexOf(':'); int num3 = <Compare>g__Compare|7_1((num == -1) ? readOnlySpan : readOnlySpan.Slice(0, num), (num2 == -1) ? readOnlySpan2 : readOnlySpan2.Slice(0, num2)); if (num3 != 0) return num3; readOnlySpan = ((num == -1) ? default(ReadOnlySpan<char>) : <Compare>g__SkipAheadOnDelimiter|7_0(readOnlySpan.Slice(num + 1))); readOnlySpan2 = ((num2 == -1) ? default(ReadOnlySpan<char>) : <Compare>g__SkipAheadOnDelimiter|7_0(readOnlySpan2.Slice(num2 + 1))); } if (!readOnlySpan.IsEmpty) return 1; if (!readOnlySpan2.IsEmpty) return -1; return 0; } static ConfigurationKeyComparer() { ConfigurationKeyComparer instance = Instance; Comparison = instance.Compare; } } }