2009-05-01 16 views
1

xmltextreaderを使用して、ハッシュテーブルをロードする方法xmltextreaderを使用して単純なxmlファイルからハッシュテーブルをロードする方法

XML:

<base><user name="john">2342343</user><user name="mark">239099393</user></base> 

これは前に頼まれたが、それは私はまだと完全に慣れていないよ、いくつかのファンキーなLINQを使用していました。

+0

LINQ to XMLは、ほぼ確実に最も簡単なルートになります。間違いなくLINQ以外のソリューションをお探しですか? –

+0

XMLSerializerはどうですか?それはXLINQより簡単でしょうか? –

答えて

2

LINQ to XMLソリューションは本当に簡単なので、より複雑なソリューションを作成するのではなく、それに慣れさせることをお勧めします。ここでは、すべて一度にこれを行うことができます。もちろん、

// Load the whole document into memory, as an element 
XElement root = XElement.Load(xmlReader); 

// Get a sequence of users 
IEnumerable<XElement> users = root.Elements("user"); 

// Convert this sequence to a dictionary... 
Dictionary<string, string> userMap = users.ToDictionary(
     element => element.Attribute("name").Value, // Key selector 
     element => element.Value);     // Value selector 

...説明をたっぷり使って、コードだ - と私はおそらく第二と第三の文を組み合わせたいです。しかし、それは概念的には簡単なので、それは得られる可能性が高いほどです。ユーザー要素が名前を持っていない可能性があるという可能性をエラー処理に入れたいと思えば、もっと複雑になります。この場合、このコードはNullReferenceExceptionをスローします。

これは、名前をキーとして、idを値として使用することを前提としています。別の方法でハッシュテーブルを使いたい場合は、ラムダ式の順序を入れ替えてください。

+0

ええと。 'ToDictionary(..)の定義や拡張メソッドが含まれていません。' asp.net 4.0を使用して – Blankman

関連する問題