AngleSharp by AngleSharp

<PackageReference Include="AngleSharp" Version="0.9.7" />

.NET API 1,204,224 bytes

 DictionaryValueConverter<T>

using AngleSharp.Dom.Css; using AngleSharp.Extensions; using AngleSharp.Parser.Css; using System.Collections.Generic; namespace AngleSharp.Css.ValueConverters { internal sealed class DictionaryValueConverter<T> : IValueConverter { private sealed class EnumeratedValue : IPropertyValue { private readonly string _identifier; private readonly T _value; private readonly CssValue _original; public string CssText => _identifier; public CssValue Original => _original; public EnumeratedValue(string identifier, T value, IEnumerable<CssToken> tokens) { _identifier = identifier; _value = value; _original = new CssValue(tokens); } public CssValue ExtractFor(string name) { return _original; } } private readonly Dictionary<string, T> _values; public DictionaryValueConverter(Dictionary<string, T> values) { _values = values; } public IPropertyValue Convert(IEnumerable<CssToken> value) { string text = value.ToIdentifier(); T value2 = default(T); if (text == null || !_values.TryGetValue(text, out value2)) return null; return new EnumeratedValue(text, value2, value); } public IPropertyValue Construct(CssProperty[] properties) { return PropertyExtensions.Guard<EnumeratedValue>(properties); } } }