xmltextreaderを使用して、ハッシュテーブルをロードする方法xmltextreaderを使用して単純なxmlファイルからハッシュテーブルをロードする方法
XML:
<base><user name="john">2342343</user><user name="mark">239099393</user></base>
これは前に頼まれたが、それは私はまだと完全に慣れていないよ、いくつかのファンキーなLINQを使用していました。
xmltextreaderを使用して、ハッシュテーブルをロードする方法xmltextreaderを使用して単純なxmlファイルからハッシュテーブルをロードする方法
XML:
<base><user name="john">2342343</user><user name="mark">239099393</user></base>
これは前に頼まれたが、それは私はまだと完全に慣れていないよ、いくつかのファンキーなLINQを使用していました。
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を値として使用することを前提としています。別の方法でハッシュテーブルを使いたい場合は、ラムダ式の順序を入れ替えてください。
ええと。 'ToDictionary(..)の定義や拡張メソッドが含まれていません。' asp.net 4.0を使用して – Blankman
LINQ to XMLは、ほぼ確実に最も簡単なルートになります。間違いなくLINQ以外のソリューションをお探しですか? –
XMLSerializerはどうですか?それはXLINQより簡単でしょうか? –