Selectors
A list of selectors, which is the basis for CompoundSelector and
SelectorGroup.
using AngleSharp.Css;
using AngleSharp.Extensions;
using System.Collections;
using System.Collections.Generic;
namespace AngleSharp.Dom.Css
{
internal abstract class Selectors : CssNode, 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 => this.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 IEnumerator<ISelector> GetEnumerator()
{
return _selectors.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
}