Обновить элемент с заданным ID в XML документе - C#

Узнай цену своей работы

Формулировка задачи:

народ помогите плз с методом Update. Он должен как бы обновить элемент с таким же ID в xml документе...но он у меня все ломает после чего и метод Read перестает работать...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.IO;
using System.Xml.Linq;
 
namespace ConsoleApplication2
{
    class UserXmlDAL:ICRUD
    {
        public void Create(User u)
        {
            FileStream fs = null;
            List<User> l1 = new List<User>();
            if (File.Exists(@"SerializationOverview.xml"))
            {
                fs = new FileStream(@"SerializationOverview.xml", FileMode.Open, FileAccess.ReadWrite, FileShare.None);
 
                System.Xml.Serialization.XmlSerializer reader =
            new System.Xml.Serialization.XmlSerializer(typeof(List<User>));
                System.IO.StreamReader file = new System.IO.StreamReader(fs);
                try
                {
                    l1 = (List<User>)reader.Deserialize(file);
                }
                catch (Exception e)
                {
                    Console.Write(e);
                    
                }
            }else
            fs = new FileStream(@"SerializationOverview.xml", FileMode.Create, FileAccess.ReadWrite,FileShare.None);
 
            u.ID = l1.Count;
            l1.Add(u);
 
            fs.SetLength(0);
            System.Xml.Serialization.XmlSerializer writer =
                new System.Xml.Serialization.XmlSerializer(typeof(List<User>));
 
            System.IO.StreamWriter file2 = new System.IO.StreamWriter(fs);
            writer.Serialize(file2, l1);
            
            file2.Close();
            fs.Close();
        }
 
        public void Read()
        {
            FileStream fs = null;
            List<User> l1 = new List<User>();
            
                fs = new FileStream(@"SerializationOverview.xml", FileMode.Open, FileAccess.ReadWrite, FileShare.None);
 
                System.Xml.Serialization.XmlSerializer reader =
            new System.Xml.Serialization.XmlSerializer(typeof(List<User>));
                System.IO.StreamReader file = new System.IO.StreamReader(fs);
                try
                {
                    l1 = (List<User>)reader.Deserialize(file);
                    foreach (var l in l1)
                    {
                        Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}", l.ID, l.Name, l.Sex, l.Age, l.Administrator, l.Moderator);
                    }
 
                }
                catch (Exception e)
                {
                    Console.Write(e);
 
                }
                fs.Close();

        }
 
        public void Upadate(User u)
        {
            FileStream fs = null;
            List<User> l1 = new List<User>();
            if (File.Exists(@"SerializationOverview.xml"))
            {
                fs = new FileStream(@"SerializationOverview.xml", FileMode.Open, FileAccess.ReadWrite, FileShare.None);
 
                System.Xml.Serialization.XmlSerializer reader =
            new System.Xml.Serialization.XmlSerializer(typeof(List<User>));
                System.IO.StreamReader file = new System.IO.StreamReader(fs);
                try
                {
                    l1 = (List<User>)reader.Deserialize(file);
                }
                catch (Exception e)
                {
                    Console.Write(e);
 
                }
                if (u.ID == l1.Count)
                    l1.Add(u);
                fs.SetLength(l1.Count + 1);
                System.Xml.Serialization.XmlSerializer writer =
                    new System.Xml.Serialization.XmlSerializer(typeof(List<User>));
 
                System.IO.StreamWriter file2 = new System.IO.StreamWriter(fs);
                writer.Serialize(file2, l1);
 
                file2.Close();
                fs.Close();
            }
            else
                Console.WriteLine("XML file doesn't exist");
        }
и помогите пожалуйста с методом Delete(user u) ... а то что я потерялся уже)

Решение задачи: «Обновить элемент с заданным ID в XML документе»

textual
Листинг программы
namespace ConsApp_Xml
{
    public class User
    {
        public int ID { get; set; }
 
        public string Name { get; set; }
 
        public Sex Sex { get; set; }
 
        public ushort Age { get; set; }
 
        public bool IsAdministrator { get; set; }
 
        public bool IsModerator { get; set; }
 
        public override string ToString()
        {
            return string.Format("{0}\t{1}\t{2}\t{3}\t{4}\t{5}", ID, Name, Sex, Age, IsAdministrator, IsModerator);
        }
    }
}

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

15   голосов , оценка 4.067 из 5
Похожие ответы