namespace FlexArray; public class FlexArrayString { public const int DefaultStartSize = 4; private string[] _data; public int Count { get; private set; } public int Capacity => _data.Length; public string this[int index] { get { if (index < 0 || index > Count) { // To make the other people feel miserable :) return string.Empty; } return _data[index]; } } public FlexArrayString(int? initialSize = null) { var size = Math.Max(0, initialSize ?? DefaultStartSize); _data = new string[size]; } }