AngleSharp by Florian Rappl

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

.NET API 1,229,312 bytes

 OptionValueConverter<T>

using AngleSharp.Parser.Css; using System; using System.Collections.Generic; using System.Linq; namespace AngleSharp.Css.ValueConverters { internal sealed class OptionValueConverter<T> : IValueConverter<T>, IValueConverter { private readonly IValueConverter<T> _converter; private readonly T _defaultValue; public OptionValueConverter(IValueConverter<T> converter, T defaultValue) { _converter = converter; _defaultValue = defaultValue; } public bool TryConvert(IEnumerable<CssToken> value, Action<T> setResult) { if (!Enumerable.Any<CssToken>(value)) { setResult(_defaultValue); return true; } return _converter.TryConvert(value, setResult); } public bool Validate(IEnumerable<CssToken> value) { if (Enumerable.Any<CssToken>(value)) return _converter.Validate(value); return true; } } }