Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Du kan lave en ny klasse der bruger ArrayList, men hvor metoderne tager og afleverer den rigtige type. Dine metoder kalder blot metoderne i ArrayList med passende konvertering af typerne.
Det kommer jo helt an på hvad du skal bruge det til. Jeg kunne forestille mig at det er hurtigere at arbejde med et almindeligt array, dog ved jeg ikke om det så er langsommere at tilføje/fjerne elementer.
Eks. lav en klasse alá denne til at "styre" et array af "myObj":
jeps jeg læste også at castingen tog lidt cpu, men hvis man skal copy sit array, nedlægge/oprette, må det vel også koste??+ jeg ved ikke om der er megen forskel, men spændende
Jeg går ud fra at når man bruger Array.Copy metoden, så kopierer den kun adresserne på indholdet af arrayet, og ikke selve arrayet. Det er i hvert tilfælde min erfaring at det er betydeligt hurtigere end ArrayList, i langt de fleste tilfælde - dvs. hvis du skal arbejde med meget store arrays eller hvis du bruger objekterne i dit array oftere end du tilføjer/fjerner objekter.
Jeg vil foreslå at du prøver dig frem - hvis du benytter store arrays og er lidt følsom overfor cpu forbrug, kan det vel godt betale sig at prøve både ArrayList og et almindeligt array. Så kan du jo vælge det hurtigste, fra gang til gang.
Den helt rigtige måde at lave en collection på er som følger:
public class BananaPageCollection : CollectionBase, IEnumerable { new public virtual int Count { get { return List.Count; } }
public void Add(BananaPage bananapage) { List.Add(bananapage); }
new public void Clear() { List.Clear(); }
new public void RemoveAt(int index) { List.RemoveAt(index); } public void Remove(BananaPage bananapage) { List.Remove(bananapage); } public void RemoveById(int id) { foreach (BananaPage bananapage in List) { if (bananapage.ID == id) Remove(bananapage); } }
public BananaPage this[int key] { get { return (BananaPage)List[key]; } } public BananaPage this[string title] { get { foreach (BananaPage bananapage in List) { if (bananapage.Title == title) return bananapage; } throw new NullReferenceException("BananaPage does not exist in collection."); return new BananaPage(); } }
new internal BananaPageEnumerator GetEnumerator() { return new BananaPageEnumerator(this); }
Bemærk i øvrigt, at sådanne Strongly-typed collections er en planlagt udvidelse af C#/.NET (generics)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.