Открытый член 'Где' для типа 'PlcBlockUserGroupComposition' не найден
Я пытаюсь найти папку в проекте Siemens TIA Portal с помощью программы Vb.Net с Siemens Openness.
Если я запускаю код:
Dim currFolder 'Define the current folder without a type.
currFolder = emptySoftware.BlockGroup
For Each folderName As String In path.Split({"\"}, StringSplitOptions.RemoveEmptyEntries).ToList()
currFolder = currFolder.Groups().Where(Function(x) x.Name = folderName).Single()
Next
Я получаю ошибку
Открытый член 'Где' для типа 'PlcBlockUserGroupComposition' не найден
Но тип SW.Blocks.PlcBlockUserGroup
действительно реализует интерфейс IEnumerable.
Кроме того, если я запускаю следующий код:
Dim currFolder 'Define the current folder without a type.
currFolder = emptySoftware.BlockGroup
For Each folderName As String In path.Split({"\"}, StringSplitOptions.RemoveEmptyEntries).ToList()
Dim tmpFolder = CType(currFolder, SW.Blocks.plcBlockGroup)
Dim tmp = tmpFolder.Groups
currFolder = tmpFolder.Groups().Where(Function(x) x.Name = folderName).Single()
Next
Я не получаю ошибки, хотя мой отладчик показывает, что tmp
имеет тип SW.Blocks.PlcBlockUserGroupComposition
Почему это? Что заставляет второй фрагмент работать, а первый - нет?
Причина, по которой я предпочитаю первый фрагмент, заключается в том, что это позволило бы мне использовать один и тот же код для разных типов, которые все реализуют Groups
атрибут, а Where
функция.