0
0ベースのインデックスを使用してNameValueMapを反復しようとしましたが、動作しませんでした。 1ベースのインデックスを使用して反復処理を行いました。Autodesk InventorのNameValueMapを反復する
動作しませんでした。
public static void onParameterChange(_Document document,
Inventor.Parameter parameter,
EventTimingEnum BeforeOrAfter,
NameValueMap context ,
out HandlingCodeEnum handlingCode)
{
handlingCode = HandlingCodeEnum.kEventHandled;
// Did not work. Got an exception.
for (int i = 0; i < context.Count; ++i)
{
string name = context.Name[i];
string value = (string)context.Value[name];
}
}
Worked。
public static void onParameterChange(_Document document,
Inventor.Parameter parameter,
EventTimingEnum BeforeOrAfter,
NameValueMap context ,
out HandlingCodeEnum handlingCode)
{
handlingCode = HandlingCodeEnum.kEventHandled;
// Worked.
for (int i = 1; i <= context.Count; ++i)
{
string name = context.Name[i];
string value = (string)context.Value[name];
}
}
私はそれに驚きました。それは期待されていますか?
また、NameValueMap
がIEnumerable
を継承していることに気付きました。私はforeach
を使ってNameValueMap
のアイテムを入手しようとしました。しかし、それは私にアイテムの価値を与えただけです。アイテムの名前を取得する方法はありますか?
public static void onParameterChange(_Document document,
Inventor.Parameter parameter,
EventTimingEnum BeforeOrAfter,
NameValueMap context ,
out HandlingCodeEnum handlingCode)
{
handlingCode = HandlingCodeEnum.kEventHandled;
foreach (var item in context)
{
// How do you get the name?
string value = item;
}
}
感謝を。私はC#の初心者です。 –