[ artriba @ 17.03.2008. 13:29 ] @
Imali li kakva funkcija kao za int [] niz, niz.Contains(elemant) samo za niz struktura koja sadrži dva podaktovna elementa? Ili moram prolazi for petljom?
[ Shadowed @ 17.03.2008. 13:39 ] @
Ako imas referencu na taj element, da. Samo obrati paznju, za int je dovoljno da pitas .contrins(2) jer je vrednosni tip. U ovom slucaju ti treba referenca na objekat cije postojanje u nizu proveravas.
[ artriba @ 17.03.2008. 13:56 ] @
Onda kako da pišem, ako imam strukturu Public Struct BlaBla ( public int a; public int b; ) i niz struktura BlaBla [] niz = new BlaBla ( 10 ) i želim provjerit int a unutar strukture sa Contains? niz[].Contains ( element, ??? ).
[ mmix @ 17.03.2008. 14:12 ] @
Ako koristis C# 3.0 ( Visual Studio 2008 ), mozes da iskoristis IEnumerable ekstenzije nizova i lambda predikat da dodjes do resenja bez svoje For petlje..
Npr, dva nacina preko Aggregate i Where ekstenzija, npr da nadjemo dal sledeci niz ima kao polje2 13 i 15 (mislim da je agregate brzi, zato sto ne generise novi niz, sto Where radi):

Code:

    struct MojSlog
    {
        public int polje1, polje2;
        public MojSlog(int p1, int p2) { polje1 = p1; polje2 = p2; }
    }

    class Program
    {

        static void Main(string[] args)
        {
            MojSlog[] niz = { new MojSlog(10, 11), 
                              new MojSlog(14, 18),
                              new MojSlog(13, 13),
                              new MojSlog(16, 17)};

            // vraca false
            bool ima15 = niz.Where(element => element.polje2 == 15).Count() != 0;
            // vraca true
            bool ima13 = niz.Aggregate(false, (hasEntry, element) => hasEntry |= element.polje2 == 13);

        }
    }