Запись в файл из массива объектов и чтение обратно в массив - C#

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

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

Прошу помощи Приблизительно вот такой код
 class A
    {
        public int Element { get; set; }
        public string Element2 { get; set; }
        public A(int el, string el2)
        {
            Element = el;
            Element2 = el2;
        }
    }
 
    class B
    {
        public A ElementA { get; set; }
        public B(A elA)
        {
            ElementA = elA;
        }
    }
ну и, обработчик записи в файл
private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            A a = new A(3, "aaaaa");
            A a1 = new A(4, "bbbbb");
            A a2 = new A(5, "ccccc");
            List<A> listA = new List<A>();
            listA.Add(a);
            listA.Add(a1);
            listA.Add(a2);
            B b = new B(a);
            B b1 = new B(a1);
            B b2=new B(a2);
            List<B> listB = new List<B>();
            listB.Add(b);
            listB.Add(b1);
            listB.Add(b2);
 
            using (StreamWriter sw = new StreamWriter(@"G:\test.txt"))
            {
                foreach (B temp in listB)
                {
                    sw.WriteLine(temp.ElementA.Element + "  " + temp.ElementA.Element2);
                }
            }
        }
Запись в файл-то нормально. Как загрузить в таком же порядке обратно?

Решение задачи: «Запись в файл из массива объектов и чтение обратно в массив»

textual
Листинг программы
string filename = "P:\\abc.txt";
List<B> listB = new List<B>();
using (var sr = new StreamReader(filename))
{
    while (!sr.EndOfStream)
    {
        string line = sr.ReadLine();
        int n, p = line.IndexOf(' ');
        if (p > 0 && int.TryParse(line.Substring(0, p), out n))
        {
            listB.Add(new B(new A(n, line.Substring(p + 1))));
        }
    }
}

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


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

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

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