C# Linq到XML-将多个元素放入单个类中

C# Linq到XML-将多个元素放入单个类中,c#,linq-to-xml,C#,Linq To Xml,我有以下XML: <appSettings> <add key="Prop1" value="1" /> <add key="Prop2" value="2" /> </appSettings> 你为什么不用这个 System.Configuration.ConfigurationManager.AppSettings["Prop1"]; System.Configuration.ConfigurationManager.AppSet

我有以下XML:

<appSettings>
   <add key="Prop1" value="1" />
   <add key="Prop2" value="2" />
</appSettings>

你为什么不用这个

System.Configuration.ConfigurationManager.AppSettings["Prop1"]; System.Configuration.ConfigurationManager.AppSettings[“Prop1”];
你会想要这样的

var xml = XElement.Parse(
    @"<appSettings><add key=""Prop1"" value=""1"" /><add key=""Prop2"" value=""2"" /></appSettings>");
new ConfigProp
{
    Prop1=xml
        .Elements("add")
        .Single(element=>element.Attribute("key").Value == "Prop1")
        .Attribute("value")
        .Value,
    Prop2 = xml
        .Elements("add")
        .Single(element => element.Attribute("key").Value == "Prop2")
        .Attribute("value")
        .Value
};
var xml=XElement.Parse(
@"");
新ConfigProp
{
Prop1=xml
.要素(“添加”)
.Single(element=>element.Attribute(“key”).Value==“Prop1”)
.属性(“值”)
价值
Prop2=xml
.要素(“添加”)
.Single(element=>element.Attribute(“key”).Value==“Prop2”)
.属性(“值”)
价值
};

请注意,如果xml不包含Prop1和Prop2键,则会抛出一个异常。

按原样-这不起作用。您需要
xml.degenerations(“add”)
xml.Element(“appSettings”).Elements(“add”)而不是
xml.Elements(“add”)
-然后它就可以工作了…@marc_如果您假设
xml
是给定xml的
XDocument
,这是正确的,因为我没有真正指定它是什么,这不是无效的假设。我已经更新了,以明确我的意图。
var xml = XElement.Parse(
    @"<appSettings><add key=""Prop1"" value=""1"" /><add key=""Prop2"" value=""2"" /></appSettings>");
new ConfigProp
{
    Prop1=xml
        .Elements("add")
        .Single(element=>element.Attribute("key").Value == "Prop1")
        .Attribute("value")
        .Value,
    Prop2 = xml
        .Elements("add")
        .Single(element => element.Attribute("key").Value == "Prop2")
        .Attribute("value")
        .Value
};