使用 xmltextreader,我将如何加载哈希表。
XML:
<base><user name="john">2342343</user><user name="mark">239099393</user></base>
之前有人问过这个问题,但它使用了一些我还不太熟悉的时髦的 linq。
使用 xmltextreader,我将如何加载哈希表。
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 作为值。如果你想要哈希表反过来,只需切换 lambda 表达式的顺序。