Pętla foreach + warunek.

0

Witam

Mam pętlę w której kolejno wyświetlam na stronie obrazki pobrane z bazy

        @foreach (var image in Model.BBIN)
        {
            if ( image.????? == 0 )
            {
                <div class="item active">
                    <img src="@Url.Action("SelectImage", "Image", new { id = image.Id })" />
                </div>
            }
            else
            {
                <div class="item">
                    <img src="@Url.Action("SelectImage", "Image", new { id = image.Id })" />
                </div>
            }
        }

jak mogę napisać warunek w którym dla pierwszej pozycji z var image = 0 wykonaj xxxx dla pozostałych yyy

Pozdrawiam.

1

Najprościej to użyć zwykłego fora i sprawdzać index.

0

Można sprawdzać indeks ale jeżeli wiesz, że chcesz coś zrobić tylko dla jednego elementu to chyba lepiej nie sprawdzać tego warunku dla wszystkich pozostałych? Chyba że kompilator jest taki mądry, że zignoruje później tego ifa, nie wiem...

0

Ja bym zadeklarowal bool z wartością false który by informował czy był już obrazek z numerem 0. Jeśli się pojawi to bool zmieniałby wartość na true. Wstawisz boola do if i po sprawie.

Chyba że czegoś nie zrozumiałem.

0

akerman ok ale tego ifa pozniej bedzie sprawdzalo milion razy... Czy to jest mądre? Nie sądzę...

0

Żaden if nie jest potrzebny, wykonaj akcję dla elementu o indeksie 0, a potem zrób fora od 1 do n.

Srebrny Wąż napisał(a):

akerman ok ale tego ifa pozniej bedzie sprawdzalo milion razy... Czy to jest mądre? Nie sądzę...

Sprawdzanie takiego ifa milion razy zajmie jakieś 10ms. Dużo mniej niż wyrenderowanie strony w przegląarce, wysłanie zapytania do bazy danych, czy wiele innych rzeczy, które już robisz w aplikacji. W czym problem?

0

Zrób fora i zacznij indeksowac o 2 elementu tj: for(int i = 1; i<x; i++) a dla 1 elementu wyswietl oddzielnie

0

dzięki za pomoc

ustawiłem zmienną "i" na 0

@{ int i = 0; }

a następnie w if-ie ustawiam warunek i == 0 jeśli jeśli jest prawdziwy wykonuję kod i zwiększam i++

if (i == 0)
{ i++ ..... } else { ...... }

Pozdrawiam.

0

@GAMMIS: a po co to robisz, skoro mógłbyś jednak zacząć pętlę od indeksu 1?

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