标签:dictionary jint javascript c
我有一本.NET通用词典.我想传递给我在Jint中运行的JavaScript函数.
Jint不会将.NET字典视为JavaScript对象,而将JavaScript对象视为字典.您可以访问对象的.NET属性和方法,但不能访问扩展方法.
因此,尽管我可以得到字典键的数量,但无法枚举它或对其调用ToArray().
我可以使用dict [key]从字典中读取值,但是在这种情况下,我事先不知道键.
如何枚举键或获取.NET通用词典中的所有条目?
我愿意对字典做一些事情,或者在将其传递给我之前将其转换,或者弄清楚如何在JavaScript中进行处理.我希望不必分别传递键的数组.这是在另一个数据结构内部,对每个字典执行此操作会使它更加复杂,但是如果找不到其他解决方案,这是我正在考虑的选项之一.
我宁愿不要使用动力学.在过去大量使用它们时,我很难解决它们泄漏内存的问题.
解决方法:
我只是遇到了同样的问题,并通过在字典上使用枚举器解决了这个问题:
// Javascript in Jint:
var enumerator = myDictionary.GetEnumerator();
while (enumerator.MoveNext()) {
var key = enumerator.Current.Key;
var value = enumerator.Current.Value;
// do stuff with key and/or value
}
如果您对myDictionary.Keys或myDictionary.Values都不感兴趣,可以使用相同的方法进行迭代.
注意:您提到可以使用dict [key].至少对于我有一个复杂结构作为键的我来说,这是行不通的.显然Jint无法很好地处理通用索引器并抛出:System.InvalidOperationException:未找到匹配的索引器.
标签:dictionary,jint,javascript,c
来源: https://codeday.me/bug/20191025/1930715.html
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。