Запись и считывание массива структур (документ 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;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5