Proviamoci tutti: ottimizzazione e minimizzazione di codice

Proviamo a ottimizzare e minimizzare questo codice scritto senza pensare troppo (presente in uno user control - noterete i this): in un sito voglio mostrare quattro immagini random diverse prese da una galleria rappresentata da una collection di images. Ammesse funzioni del tipo Array.xxx. Obiettivo primario eliminare i--

 

        IList<MyClass> images = // loading;
        if (images != null && images.Count > 0)
        {
            // ottimizzazione
            if (images.Count <= 4)
            {
                for (int i = 0; i < 4 && i < images.Count; i++)
                {
                    img[i] = i;
                }
            }
            else
            {
                for (int i = 0; i < 4 && i < images.Count; i++)
                {
                    Random random = new Random();
                    int generato = random.Next(0, images.Count - 1);
                    bool trovato = false;
                    foreach (int elemento in img)
                    {
                        if (generato == elemento)
                        {
                            // esiste già
                            trovato = true;
                            break;
                        }
                    }
 
                    if (!trovato)
                        img[i] = generato;
                    else
                        i--;
                }
            }
            for (int i = 0; i < 4 && i < images.Count; i++)
            {
                Image image = (Image)this.FindControl("img" + i);
                if (image != null)
                {
                    image.ImageUrl = images[img[i]]["percorso"];
                }
            }
            if (images.Count < 4)
            {
                for (int i = images.Count; i < 4; i++)
                {
                    Image image = (Image)this.FindControl("img" + i);
                    if (image != null)
                        image.Visible = false;
                }
            }
        }
        else
        {
            img0.Visible = false;
            img1.Visible = false;
            img2.Visible = false;
            img3.Visible = false;
        }
Technorati tags:

Print | posted @ martedì 18 marzo 2008 22:35

Comments have been closed on this topic.