Я использую C # .Net 4.7.2
Я хочу проанализировать тип с помощью отражения.Одна часть анализа заключается в выявлении свойств, которые относятся к любому виду коллекции.Такие как Collection, List, Array, IEnumerable и т. Д.
Я думал, что это будет легко, и я искал типы, реализующие IEnumerable.Ну, похоже, не все так просто.Например, String также реализует IEnumrable, но не является типом коллекции.
Есть ли что-то еще, что я мог бы использовать, чтобы утверждать, что свойство является какой-то коллекцией?
Разъяснение Тип коллекции означает любой тип, который может хранить или управлять несколькими членами (точное количество элементов не имеет значения).Можно также назвать это типом контейнера.Например, Коллекция, Список, Массив, Словарь, ...
IEnumarable, однако, не является хорошим критерием для отделения типов коллекции от не коллекционных типов.Например, String реализует IEnumerable, поскольку он предоставляет массив char.Но String не является типом коллекции.
Меня беспокоит, что такие типы, как String, неправильно воспринимаются как коллекция.В случае строки я бы прочитал массив char, но я действительно хотел прочитать саму строку.
В случае реального типа коллекции, например, List<int>
Я хочу прочитать каждый элемент.В этом примере каждое целое значение.
Нет необходимости изменять значения!