Program W C# sortujacy tablice fragment

0
 if (rbOp1.Checked)
            {
                Array.Sort(numbers, (int a, int b) => {
                    if (a % 2 == 0 && b%2 != 0)
                    {
                        return 1;
                    }
                    else if (a % 2 != 0 && b%2 == 0)
                    {
                        return -1;
                    }
                    else if (a % 2 == 0 && b % 2 == 0)
                    {
                        return 0;
                    }
                    else
                    {
                        return 0;
                    }
                });
                lbResult.Items.Clear();
                for (int i = 0; i < numbers.Length; i++)
                {
                    lbResult.Items.Add(numbers[i]);
                }
            }

            if (rbOp2.Checked)
            {
                Array.Sort(numbers, (int a, int b) =>
                {
                    if (a % 2 == 0 && b % 2 != 0)
                    {
                        return -1;
                    }
                    else if (a % 2 != 0 && b % 2 == 0)
                    {
                        return 1;
                    }
                    else if (a % 2 == 0 && b % 2 == 0)
                    {
                        return a - b;
                    }
                    else
                    {
                        return b - a;
                    }
                });
                lbResult.Items.Clear();
                for (int i = 0; i < numbers.Length; i++)
                {
                    lbResult.Items.Add(numbers[i]);
                }
 

Może ktoś pomóc z tymi ifami i return co to robi?

2

Weź lepiej znajdź lepszego gotowca...

0

Po co ci internet, skoro nie potrafisz wpisać w google "c sharp if" i "c sharp return"?

0

Ogarnij jakiś kurs na necie. Dwie godziny i ify i returny będziesz rozumiał. Nawet pewnie nie wiesz co to są metody i funkcje, więc nic z tłumaczenia na forum nie wyniesiesz.

0

wyniose możesz mi to wytłumaczyć ?

0

if = jeżeli
return = powróć
else = albo

0

tyle to wiem co zwraca o co chodzi z tą wartoscia 1 -1 i 0?

0

0 - ok
-1 zle
1 - chyba tez ok

0

<0 = elementy trzeba zamienić miejscami
0 = elementy równe

0 = elementy na swoim miejscu, ale nie równe

Tak jest w Javie, ale w C# pewnie też.

0
Wibowit napisał(a):

<0 = elementy trzeba zamienić miejscami
0 = elementy równe

0 = elementy na swoim miejscu, ale nie równe

Na odwrót, ujemna wartość, gdy drugi parametr jest większy,lepszy itd. sortuje rosnąco.

0

czyli jak mniejsze od zera to elementy sie zamienia a return 1 to pozostaja na swoim miejscu?

0

a w instrukcji a-b to sortuje rosnaco a b-a malejaco?

0

Dobra jeszcze raz, bo namotałem :P

Jeśli wartość zwracana jest większa od 0 to znaczy że 1. parametr jest większy, trzeba zamienić ze sobą liczby. Jeśli 0 to parametry są równe. Jeśli mniejsza od 0 to nie zamieniamy.

tam gdzie masz:
return a - b;

jeśli a większe od b to funkcja zwróci wartość dodanią, więc funkcja sort zamienia elementy.

0

http://www.dotnetperls.com/return
to Ci może też pomóc, a nastepnym razem zanim przepiszesz gotowca z internetu to wygoogluj sobie w bingu "C# return value" :-)

0

Tu jest opisane co należy zwracać http://msdn.microsoft.com/en-us/library/tfakywbh.aspx

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