HtmlCollection<T>
A specialized collection containing elements of type T.
using AngleSharp.Extensions;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace AngleSharp.Dom.Collections
{
internal sealed class HtmlCollection<T> : IHtmlCollection<T>, IEnumerable<T>, IEnumerable where T : class, IElement
{
private readonly IEnumerable<T> _elements;
public T this[int index] {
get {
return AngleSharp.Extensions.CollectionExtensions.GetItemByIndex<T>(_elements, index);
}
}
public T this[string id] {
get {
return AngleSharp.Extensions.CollectionExtensions.GetElementById<T>(_elements, id);
}
}
public int Length => Enumerable.Count<T>(_elements);
public HtmlCollection(IEnumerable<T> elements)
{
_elements = elements;
}
public HtmlCollection(INode parent, bool deep = true, Predicate<T> predicate = null)
{
_elements = AngleSharp.Extensions.CollectionExtensions.GetElements<T>(parent, deep, predicate);
}
public IEnumerator<T> GetEnumerator()
{
return _elements.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return _elements.GetEnumerator();
}
}
}