AngleSharp by Florian Rappl

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

.NET API 1,168,384 bytes

 Selectors

A list of selectors, which is the basis for CompoundSelector and SelectorGroup.
using AngleSharp.Css; using System.Collections; using System.Collections.Generic; namespace AngleSharp.Dom.Css { internal abstract class Selectors : IEnumerable<ISelector>, IEnumerable { protected readonly List<ISelector> selectors; public Priority Specifity { get { Priority priority = default(Priority); for (int i = 0; i < selectors.Count; i++) { priority += selectors[i].Specifity; } return priority; } } public string Text => ToCss(); public int Length => selectors.Count; public ISelector this[int index] { get { return selectors[index]; } set { selectors[index] = value; } } public Selectors() { selectors = new List<ISelector>(); } public void Add(ISelector selector) { selectors.Add(selector); } public void Remove(ISelector selector) { selectors.Remove(selector); } public void Clear() { selectors.Clear(); } public IEnumerator<ISelector> GetEnumerator() { return selectors.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } protected abstract string ToCss(); } }