У меня есть следующий код на C#, и я понятия не имею, почему он не работает (я получаю ошибку NullReferenceException). Если я определяю Recipe как новый List(), все начинает работать нормально.C# XML ToList внутри ToList
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'? – AnthonyWJones
BTW use 'Name = (string) recipes.Element (" name ")' это сделает ваш код намного проще для чтения. – AnthonyWJones