JsonArray
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AngleSharp.Html.Submitters.Json
{
internal sealed class JsonArray : JsonElement, IEnumerable<JsonElement>, IEnumerable
{
private readonly List<JsonElement> _elements;
public int Length => _elements.Count;
public JsonElement this[int key] {
get {
return _elements.ElementAtOrDefault(key);
}
set {
for (int i = _elements.Count; i <= key; i++) {
_elements.Add(null);
}
_elements[key] = value;
}
}
public JsonArray()
{
_elements = new List<JsonElement>();
}
public void Push(JsonElement element)
{
_elements.Add(element);
}
public override string ToString()
{
StringBuilder stringBuilder = Pool.NewStringBuilder().Append('[');
bool flag = false;
foreach (JsonElement element in _elements) {
if (flag)
stringBuilder.Append(',');
stringBuilder.Append(element?.ToString() ?? "null");
flag = true;
}
return stringBuilder.Append(']').ToPool();
}
public IEnumerator<JsonElement> GetEnumerator()
{
return _elements.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
}