代码之家  ›  专栏  ›  技术社区  ›  Philip Seyfi

C#XML ToList在ToList内

  •  1
  • Philip Seyfi  · 技术社区  · 14 年前

    我有下面的C#代码,我不知道它为什么不工作(我得到了一个NullReferenceException错误)。如果我将Recipe定义为new List(),一切都会正常工作。

    foreach (XElement element in document.Descendants("vegetables"))
            {
                VegetablesList = (
                    from vegetables in element.Elements()
                    select new FoodItem()
                    {
                        Name = (vegetables.Element("name") == null) ? null : vegetables.Element("name").Value.ToString(),
                        Bcg = (vegetables.Element("bcg") == null) ? null : vegetables.Element("bcg").Value.ToString(),
                        Info = (vegetables.Element("info") == null) ? null : vegetables.Element("info").Value.ToString(),
                        Recipes = (
                            from recipes in element.Element("recipes").Elements()
                            select new Recipe()
                            {
                                Name = (recipes.Element("name") == null) ? null : recipes.Element("name").Value.ToString(),
                                Text = (recipes.Element("text") == null) ? null : recipes.Element("text").Value.ToString()
                            }
                        ).ToList()
                    }
                ).ToList();
                VegetablesListBox.ItemsSource = VegetablesList;
            }
    

    谢谢你的帮助!

    1 回复  |  直到 14 年前
        1
  •  0
  •   Pieter van Ginkel    14 年前

    我猜是的 element.Element("recipes") null ,这意味着 recipes