using System; using System.Collections.Generic; namespace CryptoExchange.Net.Converters.MessageParsing.DynamicConverters { /// /// The results of a search for fields in a JSON message /// public class SearchResult { private List _items = new List(); /// /// Get the value of a field /// public string? FieldValue(string searchName) { foreach (var item in _items) { if (item.Field.SearchName.Equals(searchName, StringComparison.Ordinal)) return item.Value; } throw new Exception($"No field value found for {searchName}"); } /// /// The number of found search field values /// public int Count => _items.Count; /// /// Clear the search result /// public void Clear() => _items.Clear(); /// /// Whether the value for a specific field was found /// public bool Contains(MessageFieldReference field) { foreach (var item in _items) { if (item.Field == field) return true; } return false; } /// /// Write a value to the result /// public void Write(MessageFieldReference field, string? value) => _items.Add(new SearchResultItem { Field = field, Value = value }); } }