Определение типа объекта

Автор Тема: Определение типа объекта  (Прочитано 1554 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн VladislavАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 210
  • Карма: 0
Определение типа объекта
« : 21-08-2019, 13:18:37 »
Добрый день. Возник следующий вопрос.
Есть массив в коде на C#.
Код - C# [Выбрать]
  1.  
  2. FilteredElementCollector ElCol = null;
  3. ElCol = new FilteredElementCollector(doc);
  4. RoomList = ElCol.OfClass(typeof(SpatialElement)).ToElements();
  5.  

Подскажите пожалуйста, как из кода на C++/CLI узнать, является ли конкретный элемент этого массива
элементом класса Room или нет?
Благодарю за информацию.

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Определение типа объекта
« Ответ #1 : 21-08-2019, 13:20:55 »
Код - C# [Выбрать]
  1. .Where(e => e is Room)

Отмечено как Решение Vladislav 21-08-2019, 14:22:42

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Определение типа объекта
« Ответ #2 : 21-08-2019, 13:26:44 »
Добавить еще:

Код - C# [Выбрать]
  1. .OfClass(...).OfCategory(BuiltInCategory.OST_Rooms)

и тогда не надо будет определять :-).

Альтернатива вместо .Where(... как предложил Александр писать .OfType<Room>()

Вообще посмотрите LINQ методы, там есть прекрасные вещи, .Cast, .OfType и т.д. для работы с коллекциями