Осторожно на интерфейсах массивов, они могут их реализовывать, но на самом деле они этого не делают ... Рассмотрим следующий код:
var x = new int[] { 1, 2, 3, 4, 5 };
var y = x as IList<int>;
Console.WriteLine("The IList:" + string.Join(",", y));
try
{
y.RemoveAt(1);
}
catch (Exception e)
{
Console.WriteLine(e);
}
Console.WriteLine(string.Join(",", y));
Он производит следующий вывод:
результат
Таким образом, синтаксический анализ работает, но поддерживается не все, что правильно с точки зрения сбора фиксированной длины, но совершенно неверно, если вы действительно верите, что это список. Идёт принцип Лискова от SOLID: (.
Для быстрого тестирования это поможет.