【发布时间】:2010-10-28 16:29:55
【问题描述】:
我有以下 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;
}
感谢您的帮助!
【问题讨论】:
-
哪行代码给了你空引用异常?
-
为什么要反复将
VegetablesList分配给ItemsSource? -
顺便说一句,使用
Name = (string)recipes.Element("name")它会让你的代码更容易阅读。 -
我在 new FoodItem() { ... } 上收到错误消息
-
@AnthonyWJones 我只分配蔬菜列表框。项目来源=蔬菜列表; - 有什么问题?
标签: c# xml linq linq-to-xml