StyleSheetList
A collection of CSS elements.
using AngleSharp.DOM.Css;
using System.Collections;
using System.Collections.Generic;
namespace AngleSharp.DOM.Collections
{
[DOM("StyleSheetList")]
public sealed class StyleSheetList : IEnumerable<StyleSheet>, IEnumerable
{
private Node _parent;
[DOM("item")]
public StyleSheet this[int index] {
get {
IEnumerator<StyleSheet> enumerator = GetEnumerator();
int num = 0;
while (enumerator.MoveNext()) {
if (num == index)
return enumerator.Current;
num++;
}
return null;
}
}
[DOM("length")]
public int Length {
get {
IEnumerator<StyleSheet> enumerator = GetEnumerator();
int num = 0;
while (enumerator.MoveNext()) {
num++;
}
return num;
}
}
internal StyleSheetList(Node parent)
{
_parent = parent;
}
private static IEnumerable<StyleSheet> GetStyleSheets(Node parent)
{
foreach (Node childNode in parent.ChildNodes) {
if (childNode is Element) {
if (childNode is IStyleSheet) {
StyleSheet sheet2 = ((IStyleSheet)childNode).Sheet;
if (sheet2 != null)
yield return sheet2;
} else {
foreach (StyleSheet styleSheet in GetStyleSheets(childNode)) {
yield return styleSheet;
}
}
}
}
}
public IEnumerator<StyleSheet> GetEnumerator()
{
return GetStyleSheets(_parent).GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
}