Witam, tworzę grę Milionerów i funkcje losowania i ładowania pliku są dość wolne, tu kod:
public Form1()
{
InitializeComponent();
InitCustomLabelFont();
Belka.Font = new Font(pfc.Families[0], Belka.Font.Size);
A_label.Font = new Font(pfc.Families[0], A_label.Font.Size);
B_label.Font = new Font(pfc.Families[0], B_label.Font.Size);
C_label.Font = new Font(pfc.Families[0], C_label.Font.Size);
D_label.Font = new Font(pfc.Families[0], D_label.Font.Size);
if (File.Exists(pytania))
{
int ilość_pyt = Convert.ToInt32(new StreamReader(pytania).ReadLine()); //pobranie pierwszej linii z pliku
while (list.Count != 15) //list.Count != maks. liczba pól (15), potrzebne 15 pytań
{
int i = new Random().Next(1, ilość_pyt + 1); // Next(1, 16) - od 1 włącznie do 15 włącznie
if (list.Contains(i))
continue;
else
list.Add(i);
}
}
else { MessageBox.Show("Nie ma pliku z pytaniami! (" + pytania + ")", "Błąd"); Close(); }
}
public void ŁadujPytanie()
{
int pyt = list[numer_pytania - 1] + ((list[numer_pytania - 1] - 1) * 4);
Belka.Text = File.ReadLines(pytania, Encoding.Default).Skip(pyt).Take(1).First().Split('-').Last();
A_label.Text = File.ReadLines(pytania, Encoding.Default).Skip(pyt + 1).Take(1).First();
B_label.Text = File.ReadLines(pytania, Encoding.Default).Skip(pyt + 2).Take(1).First();
C_label.Text = File.ReadLines(pytania, Encoding.Default).Skip(pyt + 3).Take(1).First();
D_label.Text = File.ReadLines(pytania, Encoding.Default).Skip(pyt + 4).Take(1).First();
numer_pytania++;
}
Nie dałoby się tego jakoś przyspieszyć? Za pomoc bardzo dziękuję.