По какому критерию диапазон применяется к массивам и строкам в C # 8? - PullRequest
0 голосов
/ 20 февраля 2019

Я просматриваю диапазоны C # 8 и не могу понять, как именно применение Range ограничено только массивами и строками.

Я думал, что это как-то связано с реализациями массивов интерфейсов.Он реализует ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable, IList<T>, ICollection<T>, IEnumerable<T>, IReadOnlyList<T>, IReadOnlyCollection<T>, но когда я приводю new int[0] к любому из них и пытаюсь использовать диапазон на нем, появляется ошибка компиляции (либо невозможно применить индекс, либо невозможно преобразовать из индекса в int).

Этокак-то жестко запрограммирован для использования только с массивами и строками, или я что-то пропустил?

...