首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将C#映射集合传递给Axapta代码

将C#映射集合传递给Axapta代码
EN

Stack Overflow用户
提问于 2014-04-01 15:54:57
回答 1查看 758关注 0票数 2

我有返回字典的C#类和方法。我可以在Axapta中创建这个类的实例,调用这个方法并将集合返回给Axapta,但是我不能遍历这个集合并获取它的键和值。

下面是我的Axapta代码:

代码语言:javascript
复制
ClrObject  obj;
;
obj = document.findText("some"); // returns Dictionary<string, string>
length = obj.get_Count(); // returns 5 (fine!)
obj.MoveNext(); // doesn't works 

for (i = 0; i < length; i++ )
{
   obj.get_Key(i);  // doesn't work
}

这是在Axapta中迭代字典的一种方式吗?

EN

回答 1

Stack Overflow用户

发布于 2014-04-02 12:38:33

字典上既没有get_Key也没有MoveNext方法。

必须对枚举器调用MoveNext。也就是说,您可以通过调用字典上的GetEnumerator来检索一个,然后使用它:

代码语言:javascript
复制
System.Collections.Specialized.StringDictionary dotNetStringDict;
System.Collections.IEnumerator dotNetEnumerator;
System.Collections.DictionaryEntry dotNetDictEntry;
str tempValue;
;

dotNetStringDict = new System.Collections.Specialized.StringDictionary();
dotNetStringDict.Add("Key_1", "Value_1");
dotNetStringDict.Add("Key_2", "Value_2");
dotNetStringDict.Add("Key_3", "Value_3");

dotNetEnumerator = dotNetStringDict.GetEnumerator();
while (dotNetEnumerator.MoveNext())
{
    dotNetDictEntry = dotNetEnumerator.get_Current();
    tempValue = dotNetDictEntry.get_Value();
    info(tempValue);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22779862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档