Запись и считывание массива структур (документ XML) - C#
Формулировка задачи:
Есть задание:
Ресторан содержит список блюд. Создайте массив структур «Блюда», структура содержит идентификационный номер блюда, наименование, количество грамм, стоимость. Добавьте программно 3 записи. Организуйте возможность добавления записи в структуру и вывод данных по запросу.
Вся проблема у меня в том, что я не умею работать с документам XML, я могу реализовать массив структур, но как считывать и записывать в документ XML я не знаю, помогите пожалуйста, буду признателен.
Решение задачи: «Запись и считывание массива структур (документ XML)»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.IO;
using System.Xml.Serialization;
class Program
{
static void Main()
{
List<Dish> menu = new List<Dish>{new Dish { Id = 0, Name = "A", Grams = 5, Price = 100 },
new Dish { Id = 1, Name = "B", Grams = 6, Price = 200 },
new Dish { Id = 2, Name = "C", Grams = 3, Price = 150 }};
// Записали данные в xml (и создали файл заодно)
string pathToXml = @"D:\data.xml";
XmlSerializer serializer = new XmlSerializer(typeof(List<Dish>));
using (StreamWriter sw = new StreamWriter(pathToXml))
serializer.Serialize(sw, menu);
// Считали данные из xml
List<Dish> menu2 = new List<Dish>();
using (FileStream fs = new FileStream(pathToXml, FileMode.Open))
menu2 = (List<Dish>)serializer.Deserialize(fs);
foreach (Dish f in menu2)
Console.WriteLine("{0} {1} {2} {3}", f.Id, f.Name, f.Price, f.Grams);
Console.ReadKey();
}
}
[Serializable]
public struct Dish
{
public int Id;
public string Name;
public int Grams;
public int Price;
}