Article View: alt.pl.comp.lang.csharp
Article #22477Konwersja
From: 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
Technical Details
Message-ID:
<5178ef40$0$26696$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!nf1.ipartners.pl!ipartners.pl!news.internetia.pl!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!nf1.ipartners.pl!ipartners.pl!news.internetia.pl!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Date: Thu, 25 Apr 2013 10:54:23 +0200 From: mk <mk@nospam.com> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130328 Thunderbird/17.0.5 MIME-Version: 1.0 Newsgroups: alt.pl.comp.lang.csharp Subject: Konwersja Lines: 49 Message-ID: <5178ef40$0$26696$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 79.189.213.122 X-Trace: 1366880064 unt-rea-a-01.news.neostrada.pl 26696 79.189.213.122:61938 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit