Я полный новичок, когда дело доходит до APL, и я надеюсь, что некоторые из вас, замечательные люди, смогут мне помочь...
У меня есть библиотека классов, написанная на С# и экспортированная в dll. Затем я импортирую этот класс в Dyalog APL (v14.0), и я могу создавать экземпляры объектов типов, определенных в библиотеке классов, и могу обращаться к полям по мере необходимости. Однако я обнаружил, что не могу перебирать элементы любого List‹T>.
Класс C# (не о чем особо писать, но я включил его на всякий случай):
namespace Motor_lib.Objects
{
public class Motor
{
public int? Id_motor = null;
public string Reference = null;
public string Message = null;
public DateTime? Date_modif = null;
public int? Id_hydrotorque = null;
public int? Id_spline = null;
public int? Id_pivot = null;
public int? Id_cam_cover = null;
public int? Id_cam_B_sup = null;
public int? Id_status = null;
public int? Id_CalcType = null;
public Status Status = null;
public Calculation_type Calculation_type = null;
public Spline Spline = null;
public List<Relation> Compatible_Valving_covers;
public Valving_cover Valving_cover = null;
//even more fields...
public Motor()
{
}
//Methods...
}
}
Вернемся к АПЛ:
⎕using ← 'Motor_lib.Objects,D:\Motor_lib.dll'
⍝Fetch a motor from db
myMotor ← Motor.Get 5
⍝The following works
myMotor.Reference
⍝produce the following output
Ref of 5
myMotor.Reference ← ⊂'new ref of 5' ⍝Also works
⍝Now if i do
myMotor.Compatible_Valving_covers.Count
⍝Produces 2 which is correct
myMotor.Compatible_Valving_covers[1].Reference ⍝Also works; I can access the
reference...
Мой вопрос: как перебрать каждый элемент списка и отобразить значения их полей? Я пробовал следующее без везения:
]display ⌷¨myMotor.Compatible_Valving_covers
┌────────────────────────────────────────────────────────────┐
│ ┌→───────────────────────────────────────────────────────┐ │
│ │ Motor_lib.Objects.Relation Motor_lib.Objects.Relation │ │
│ └#───────────────────────────────────────────────────────┘ │
└∊───────────────────────────────────────────────────────────┘
Как мне заставить его отображать значения полей Relation (например, Relation.Id или Relation.Reference...)
Извините за довольно длинный вопрос, и если это неясно. Любая помощь приветствуется.
¨
, например:]display ⌷myMotor.Compatible_Valving_covers
. - person Adám   schedule 10.12.2017]display ⌷myMotor.Compatible_Valving_covers.Reference
к вашему вопросу? (Надеюсь, это поможет ответить...) - person MBaas   schedule 11.12.2017code
]показать ⌷myMotor.Compatible_Valving_covers ┌→────────────────────────────└ ──────────────────────┐ │ Motor_lib.Objects.Relation Motor_lib.Objects.Relation │ └#────────── ─────────────────────────────────────────── ] .Compatible_Valving_covers.Reference * Ошибка выполнения команды: VALUE ERROR - person Jean-Benoist Brault   schedule 13.12.2017