使用linq从xml获取键值对

rak*_*los 3 c# linq

如何使用linq从此xml示例中提取键值对:

<foo>
<add key="key1" Value="val1"/>
<add key="key2" Value="val2"/>
<add key="key3" Value="val3"/>
<foo/>
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

试试这个:

string text = "<foo>...</foo>";
var pairs = XDocument.Parse(text)
                     .Descendants("add")
                     .Select(x => new { Key = x.Attribute("key").Value,
                                        Value = x.Attribute("Value").Value })
                     .ToList();
Run Code Online (Sandbox Code Playgroud)

  • 代替ToList(); 我很想使用:.ToDictionary(item => item.Key,item => item.Value); 就像OP的问题对我来说似乎更为明显. (2认同)