using System; using System.Collections.Generic; using HG; public struct KeyValueUnsplitter { public readonly string baseKey; public KeyValueUnsplitter(string baseKey) { this.baseKey = baseKey; } public string GetValue(IEnumerable> keyValues) { List> list = CollectionPool, List>>.RentCollection(); foreach (KeyValuePair keyValue in keyValues) { if (keyValue.Key.EndsWith("]", StringComparison.Ordinal)) { int num = keyValue.Key.LastIndexOf("[", StringComparison.Ordinal); string value = keyValue.Key.Substring(0, num); if (baseKey.Equals(value, StringComparison.Ordinal) && int.TryParse(keyValue.Key.Substring(num + 1), out var result)) { list.Add(new KeyValuePair(result, keyValue.Value)); } } else if (baseKey.Equals(keyValue.Key, StringComparison.Ordinal)) { return keyValue.Value; } } list.Sort((KeyValuePair a, KeyValuePair b) => a.Key.CompareTo(b.Key)); string result2 = string.Concat(list); CollectionPool, List>>.ReturnCollection(list); return result2; } }