使用LINQ查询xml以填充.NET嵌套的DataContract

时间:2019-05-07 23:05:28

标签: .net linq

我有以下.net小提琴代码,想知道是否有人可以向我正确地指出为什么我不能在Linq查询中使用嵌套的Type.Number或Type.Description定义。我做错了什么,但不知道是什么。 Tnx。

    public class Program
    {
        public static void Main()
        {
                string xml = @"<?xml version='1.0'?>
                    <class number='1'>
                        <catch>English</catch>
                        <type number='1'>
                            <catch>data</catch>
                        </type>
                        <section number='1'>
                            <catch>data</catch>
                        </section>
                    </class>";

                XElement element= XElement.Parse(xml);
                List<Class> Classes = ( from t in element.Descendants("class")
                    select new Class()
                    {
                         Type.Number = t.Element("type").Attribute("number").Value,
                         Type.Description = t.Element("catch").Value,
                         Section.Number = t.Element("class").Attribute("number").Value,
                         Section.Description = t.Element("catch").Value,
                   }).ToList();
        }
    }

    public class Class
        {
            public ClassType Type { get; set; }
            public Class()
            {
                Type = new ClassType();
                Section = new ClassType();
            }
        }
        public class ClassType
        {
            public string Number { get; set; }
            public string Description { get; set; }
        }

1 个答案:

答案 0 :(得分:0)

您可能需要这样的东西:

.Select(c =>
            {
                var cl = new Class();
                cl.Type.Number = ...;

                return cl;
            }