🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.pl.comp.lang.csharp
1 messages
1 total messages Started by mk Thu, 25 Apr 2013 08:54
Konwersja
#22477
Author: mk
Date: Thu, 25 Apr 2013 08:54
49 lines
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