Nadpisywanie w liście C#

Nadpisywanie w liście C#
PP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 20
0

Jak mogę to zrobić żeby przy kolejnym dodaniu do listy main ten wcześniejszy mi się nie nadpisywał ?

Kopiuj
            List<ListToDo> main = new List<ListToDo>();
            string filePatch = @"C:\Users\PK\source\repos\ConsoleApp5\ConsoleApp5\File.txt";
            List<string> lines = File.ReadAllLines(filePatch).ToList();
            List<string> buffList = new List<string>();
            ListToDo buff = new ListToDo();
            for (int i = 0; i < lines.Count; i++)
            {
                if (i % 4 == 0)
                {
                    buff.Date = lines[i];
                }
                if (i % 4 == 1)
                {
                    buff.Note = lines[i];
                }
                if (i % 4 == 2)
                {
                    buff.Status = Convert.ToBoolean(lines[i]);
                }
                if (i % 4 == 3)
                {
                    buff.Category = lines[i];
                    main.Add(buff);
                }

            }

Przykład pliku txt:

Kopiuj
Dziś
Jakaś notatka
true
IT
jutro
Jakaś inna notatka
false
sport

bo teraz mam w wyniku zapisania 2 razy to drugie:

Kopiuj
jutro
Jakaś inna notatka
false
sport
jutro
Jakaś inna notatka
false
sport
HI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1863
0
Kopiuj
ListToDo buff = new ListToDo();

Przenieś do pętli.

PP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 20
0

screenshot-20200313180557.png

nie działa

HI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1863
0

Wrzuć cały kod po poprawkach.

BC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 214
1
Kopiuj
if (i % 4 == 3)
{
    buff.Category = lines[i];
    main.Add(buff);
    buff = new ListToDo(); // tyle wystarczy
}

doczytaj jak działają typy referencyjne

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.