Hej,
Mam banalny program który polega na zapisaniu danych z pliku txt oddzielonych znakiem tab do poszczegolnych właściowości w liście obiektów, jednak z przyczyn mi nie znanych program cała liste wypełnia ostatnim wierszem z pliku TXT.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace KsiazkaAdresowa
{
public partial class Form1 : Form
{
List<PersonEntry> Kandydaci = new List<PersonEntry>();
PersonEntry TempPerson = new PersonEntry();
List<string> LudzieTXT = new List<string>();
StreamReader inputFile;
public Form1()
{
InitializeComponent();
}
private void btnWczytaj_Click(object sender, EventArgs e)
{
if (openFile.ShowDialog() == DialogResult.OK)
{
inputFile = File.OpenText(openFile.FileName);
while (!inputFile.EndOfStream)
{
LudzieTXT.Add(inputFile.ReadLine());
}
foreach (string czlowiek_dane in LudzieTXT)
{
string[] podzial = czlowiek_dane.Split('\t');
TempPerson.Name = podzial[0];
TempPerson.Mail = podzial[1];
TempPerson.Number = podzial[2];
MessageBox.Show(TempPerson.Name); // tutaj jest ok wyświetla pierwsze wyrażenie sprzed znaku tab z każdego wiersza
Kandydaci.Add(TempPerson);
}
MessageBox.Show(Kandydaci[0].Name); // tutaj wyświetla tylko ostatnio dodany wiersz
MessageBox.Show(Kandydaci[1].Name); // tutaj wyświetla tylko ostatnio dodany wiersz
MessageBox.Show(Kandydaci[2].Name); // tutaj wyświetla tylko ostatnio dodany wiersz
}
}
}
class PersonEntry
{
public string Name { get; set; }
public string Mail { get; set; }
public string Number { get; set; }
}
}