AngleSharp by Florian Rappl

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

.NET API 1,171,968 bytes

 CssAnimationIterationCountProperty

More information available at: https://developer.mozilla.org/en-US/docs/CSS/animation-iteration-count
using AngleSharp.Css; using AngleSharp.Extensions; using System.Collections.Generic; namespace AngleSharp.Dom.Css { internal sealed class CssAnimationIterationCountProperty : CssProperty, ICssAnimationIterationCountProperty, ICssProperty { internal static readonly IValueConverter<float> SingleConverter = Converters.NumberConverter.Constraint((float m) => m >= 0).Or(Keywords.Infinite, Infinity); internal static readonly IValueConverter<float[]> Converter = SingleConverter.FromList(); internal static readonly float Default = 1; private readonly List<float> _iterations; public IEnumerable<float> Iterations => _iterations; internal CssAnimationIterationCountProperty(CssStyleDeclaration rule) : base(PropertyNames.AnimationIterationCount, rule, PropertyFlags.None) { _iterations = new List<float>(); Reset(); } public void SetIterations(IEnumerable<float> iterations) { _iterations.Clear(); _iterations.AddRange(iterations); } internal override void Reset() { _iterations.Clear(); _iterations.Add(Default); } protected override bool IsValid(ICssValue value) { return Converter.TryConvert(value, SetIterations); } } }