Как создать бездонный массив? - C#
Формулировка задачи:
Нужно создать бездонный массив,который при желании станет донным.То есть,создаётся бездонный массив.После он начинает заполнятся,при этом его точный объём не известен.И при получении команды(например через for)массив закрывается и теперь у него уже есть чёткий конец.Каким образом можно реализовать подобную механику?
Решение задачи: «Как создать бездонный массив?»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication35 {
class Program {
static void Main(string[] args) {
ManagedList<int> managedList = new ManagedList<int>();
managedList.Size = 10;
for (int i = 0; i < 15; i++) {
try {
managedList.Add(i);
}
catch (Exception ex) {
Console.WriteLine(ex.Message);
}
}
Console.ReadLine();
}
}
public class ManagedList<T> : List<T> {
public int Size { get; set; }
public ManagedList() {
Size = int.MaxValue;
}
public new void Add(T item) {
if ((this.Count + 1) > Size) {
throw new Exception("Dynamic array closed!");
}
base.Add(item);
}
public new void AddRange(IEnumerable<T> items) {
if ((this.Count + items.Count()) > Size) {
throw new Exception("Dynamic array closed!");
}
base.AddRange(items);
}
}
}