[ 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? |
[ artriba @ 17.03.2008. 13:29 ] @
[ 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); } } Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|