Określanie wielkości tablicy i ostatni elemnet

0

Witam.

Obecnie uczę się o tablicach i mam takie pytanie:
Jak określić wielkość tablicy? Chciałbym zrobić coś takiego że jeśli już jest ostatni element program zaczyna robić coś innego. Chodzi o to że jeśli np. array[7] to jeżeli = ostatni element (linia(czyli 6 tak?)) wtedy się zatrzymuje i robi coś innego. I tutaj jest problem: Za każdym razem tablica będzie miała inną wielkość. Mam nadzieję że to dobrze wytłumaczyłem..

0
int[] array = new int[]{1,2,3,4}
for(int i = 0; i<array.Length; i++)
{
    if(i==array.Length-1)
        DoBeforeDoSomething();
    DoSomething();
}

Chyba o coś takiego Ci chodzi.
Możesz też skrócić tą tablicę o array.Length-1 i za pętlą wywołać co chcesz.

0

Może tak:
Mam plik w którym jest tekst np.
1
2
3

I teraz tak: wczytuję pliki do tablicy:
private static string[] array = File.ReadAllLines("test1.txt");

I chcę zrobić że kiedy dojdzie do "3" to program robi coś innego.

Tylko że za każdym razem w pliku będzie coś innego np.
1
2

Albo
1
2
3
4

itd.

Ok mam nadzieję że już lepiej wytłumaczone :)

0

po wykonaniu

private static string[] array = File.ReadAllLines("test1.txt");

program sie nie zatrzyma i przejdzie do nastepnej instrukcji. daj caly kod, zaznacz w nim fragment ktory jest tym 'czyms innym'

0

No właśnie nie mam jeszcze całego kodu bo dopiero zacząłem robić

Ogólnie chciałbym zrobić tak: program cały czas "idzie" w górę tej tablicy (++index ?) i jeśli ostatni element: sjed.Text = "ok"

0

no to napisz program a potem marudz ;)

foreach(var element in array)
{
//tu cos sie dzieje z elementem
}
sjed.Text="ok";//cokolwiek to robi
0
mAkks napisał(a):

Ogólnie chciałbym zrobić tak: program cały czas "idzie" w górę tej tablicy (++index ?) i jeśli ostatni element: sjed.Text = "ok"

Przecież dla ostatniego elementu pętla się kończy i wystarczy ustawić labelkę za pętlą... oO

Ale to nie zadziała ani w ten, ani w żaden inny podobny sposób. Równie dobrze możesz sobie labelkę ustawić na samym początku metody, a to z tego powodu, że wątek odpowiedzialny za odrysowanie formatki jest jednocześnie Twoim wątkiem roboczym. Dopóki wątek roboczy nie będzie wolny formatka nie zostanie odrysowana. Musiałbyś to robić w dodatkowym wątku, ewentualnie w BackgroundWorker, co i tak mija się z celem, bo chcesz wyświetlić "ok" dopiero w momencie, kiedy wątek i tak skończy pracę, więc będzie wolny do odrysowania formatki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1