Thread View: alt.pl.comp.lang.csharp
1 messages
1 total messages
Started by mk
Thu, 25 Apr 2013 08:54
Konwersja
Author: mk
Date: Thu, 25 Apr 2013 08:54
Date: Thu, 25 Apr 2013 08:54
49 lines
2901 bytes
2901 bytes
Witam,
Mam następującą kolekcję:
Dictionary<string, object> dict = new Dictionary<string, object>();
dict.add("root.test.1.value.one", 10);
dict.add("root.test.1.value.two", 1);
dict.add("root.test.1.value.three", 2);
dict.add("root.test.1.value.four", 3);
dict.add("root.test.2.value.one", 4);
dict.add("root.test.2.value.two", 5);
dict.add("root.test.2.value.three", 6);
dict.add("root.test.2.value.four", 7);
dict.add("root.value.one", 8);
dict.add("root.value.two", 11);
dict.add("root.value.three", 22);
dict.add("root.value.four", 33);
dict.add("root.data.1.object.amount", 78);
dict.add("root.data.1.object.vat", 22);
dict.add("root.data.2.object.amount", 34);
dict.add("root.data.2.object.vat", 234);
dict.add("root.data.3.object.amount", 23423);
dict.add("root.data.3.object.vat", 2341);
Jak powyżej widać klucz to struktura drzewiasta.
Teraz chciałbym napisać jakąś metodę, która przerobi mi powyższą
kolekcję na objekt w taki sposób żebym mógł odwoływać się do niego w
następujący sposób:
MyNewObject = SomeMagicMethod(dict);
Console.WriteLine(MyNewObject.root.test[1].value.one); //print 10
Console.WriteLine(MyNewObject.root.test[1].value.two); //print 1
Console.WriteLine(MyNewObject.root.test[2].value.three); //print 6
Console.WriteLine(MyNewObject.root.test[2].value.four); //print 7
Console.WriteLine(MyNewObject.root.value.one); //print 8
Console.WriteLine(MyNewObject.root.data[1].object.amount); //print 78
Console.WriteLine(MyNewObject.root.data[1].object.vat); //print 22
Console.WriteLine(MyNewObject.root.data[2].object.amount); //print 34
Teraz zastanawiam się jak najlepiej/najprościej napisać tą metodę:
SomeMagicMethod ? Może mi coś podpowiecie? Myślę że typy dynamiczne by
się tu przydały ale jeszcze z tego nie korzystałem. Jakiś toporny sposób
na pewno znajdę ale mam nadzieje że da się to zrobić jakoś lepiej.
Pozdrawiam
Mariusz
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads