ln.json/JSONArray.cs

58 lines
1.4 KiB
C#

using System;
using System.Text;
using System.Collections.Generic;
namespace ln.json
{
public class JSONArray : JSONValue
{
public override IEnumerable<JSONValue> Children => Values;
public override bool HasChildren => true;
JSONValue[] Values
{
get => values.ToArray();
set
{
values.Clear();
values.AddRange(value);
}
}
List<JSONValue> values = new List<JSONValue>();
public JSONArray()
: base(JSONValueType.ARRAY) { }
public override JSONValue this[int index] {
get => values[index];
set => values[index] = value;
}
public JSONArray Add(JSONValue value){ values.Add(value); return this; }
public JSONArray Remove(int index) { values.RemoveAt(index); return this; }
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append('[');
IEnumerator<JSONValue> kenum = values.GetEnumerator();
if (kenum.MoveNext())
do
{
sb.Append(kenum.Current.ToString());
if (!kenum.MoveNext())
break;
sb.Append(',');
} while (true);
sb.Append(']');
return sb.ToString();
}
}
}