NodeList
Represents a list of Node instances or nodes.
using AngleSharp.Html;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace AngleSharp.Dom.Collections
{
internal sealed class NodeList : INodeList, IEnumerable<INode>, IEnumerable, IMarkupFormattable
{
private readonly List<Node> _entries;
public Node this[int index] {
get {
if (index < 0 || index >= _entries.Count)
return null;
return _entries[index];
}
set {
_entries[index] = value;
}
}
INode INodeList.this[int index] {
get {
return this[index];
}
}
public int Length => _entries.Count;
internal NodeList()
{
_entries = new List<Node>();
}
internal NodeList(NodeList existing)
{
_entries = new List<Node>(existing._entries);
}
internal void Add(Node node)
{
_entries.Add(node);
}
internal void AddRange(NodeList nodeList)
{
_entries.AddRange(nodeList._entries);
}
internal void Insert(int index, Node node)
{
_entries.Insert(index, node);
}
internal void Remove(Node node)
{
_entries.Remove(node);
}
internal void RemoveAt(int index)
{
_entries.RemoveAt(index);
}
internal bool Contains(Node node)
{
return _entries.Contains(node);
}
public IEnumerator<INode> GetEnumerator()
{
return _entries.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return _entries.GetEnumerator();
}
public string ToHtml()
{
return ToHtml(HtmlMarkupFormatter.Instance);
}
public string ToHtml(IMarkupFormatter formatter)
{
StringBuilder stringBuilder = Pool.NewStringBuilder();
for (int i = 0; i < _entries.Count; i++) {
string value = _entries[i].ToHtml(formatter);
stringBuilder.Append(value);
}
return stringBuilder.ToPool();
}
}
}