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();
}
}