Matlab Read a System.Collections.Generic.Dictionary from c# dll
조회 수: 9 (최근 30일)
이전 댓글 표시
I have a Matlab application and I receive from a c# dll (NET Assembly) a
System.Collections.Generic.Dictionary*KeyCollection<System*String,System*Collections*Generic*List<System*Double>>
I would like to fill a containers.map with the received info: Keys/ Values
How can I read this kind of Collection in Matlab?
Thank u for support
댓글 수: 2
Doctor G
2016년 4월 1일
편집: Doctor G
2016년 4월 1일
If you use methods(dictObj) you will see that the dictObject supports the .Item() and other methods.
Add GetObjectData
Clear GetType
ContainsKey Item
ContainsValue OnDeserialization
Dictionary<System*String,System*Object> Remove
Equals ToString
GetEnumerator TryGetValue
GetHashCode
Radhakrishnan
2018년 10월 26일
Any Idea how to create the above collection in Matlab? I tried the following but none is working ; c1,c2,c3 are failing
DoubleListType = NET.GenericClass('System.Collections.Generic.List','System.Double'); DictType = NET.GenericClass('System.Collections.Generic.Dictionary','System.String',{DoubleListType}); c3 = NET.createGeneric('System.Collections.Generic.Dictionary','System.String',NET.GenericClass('System.Collections.Generic.List','System.Double'));
c2 = NET.createGeneric({DictType}); c1 = NET.createGeneric('System.Collections.Generic.Dictionary','System.String',{DoubleListType});
답변 (1개)
Darren Aklestad
2013년 5월 31일
I was able to do this by the following:
keys = dic.Keys;
keys_enum = keys.GetEnumerator;
len = dic.Count;
key_list = cell(len,1);
cnt = 0;
stat = 1;
while stat
stat = key_enum.MoveNext;
if stat
key_val = key_enum.Current;
if ~isempty(key_val)
key_list(cnt) = char(key_val);
end
end
end
You then have the keys and you can use the keys to access the dictionary items
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Startup and Shutdown에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!