Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 22702|Svar: 0

[Källa] Det finns flera typer av rollups för inkassobolag i C#

[Kopiera länk]
Publicerad på 2014-11-11 08:44:59 | | |
En samling som representerar en mängd objekt som kan nås genom att traversera varje element (särskilt kan den nås med foreach-loop)
En samling innehåller flera element, det vill säga det finns ett samlingsklassobjekt och N elementobjekt

Eftersom varje samlingsklass implementerar IEnumerable-gränssnittet, har varje samlingsklassobjekt en GetEnumerator()-metod, som kan returnera ett objekt som implementerar IEnumerator-gränssnittet, vilket varken är ett samlingsklassobjekt eller ett samlingselement-klassobjekt, utan ett oberoende klassobjekt. Detta objekt låter dig iterera genom varje elementobjekt i samlingsklassobjektet

Om samlingsklassen är en användardefinierad samlingsklass måste användaren implementera sin GetEnumerator()-metod, annars kan loopar inte användas. Naturligtvis måste även IEnumerator-klassen som motsvarar denna anpassade samlingsklass (klassen som implementerar gränssnittet) anpassas

Till exempel är IEnumeratorn som motsvarar samlingsklassen ArrayList ArrayListEnumeratorSimple
            IEnumeratorn som motsvarar Array-samlingsklassen är SZArrayEnumerator
      (Ingen av klasserna täcks i .NET Framework Class Library-dokumentationen (MSDN))

1. Gränssnitten i System.Kollokationer som representerar samlingens beteende är:
1) ICollection
Definiera storlek, antal enum och synkroniseringsmetoder för alla samlingar. Härlett från IEnumerable
Den definierar det mest grundläggande beteendet för samlingsklassen, och alla samlingsklasser implementerar detta gränssnitt (basgränssnitt)
Men dess beteende är för grundläggande: det är främst en Count-egenskap, och det är inte särskilt meningsfullt att implementera den ensam

2) IEnumerable
Exponera en uppräkning som stödjer enkla iterationer på en mängd
Den har bara en metod, GetEnumerator(), som returnerar ett IEnumerator-gränssnitt genom vilket den kan gå igenom samlingen
I princip implementerar alla samlingsklasser detta gränssnitt

3) IList
IList-implementeringen är en samling värden som är sorterbara och kan nås med index för dess medlemmar, och den implementerar själv ICollection- och IEnumerable-gränssnitten
är den abstrakta basklassen för alla listor. Det finns tre kategorier av IList-implementationer: skrivskyddad, fast storlek och variabel storlek.

4) Diktor
IDictionary-implementeringen är en samling nyckel-/värdepar som själv implementerar ICollection och IEnumerable-gränssnitten
är basgränssnittet för en samling nyckel-/värdepar. Det finns tre kategorier av IDictionary-implementationer: skrivskyddad, fast storlek och variabel storlek.
IDictionary kan kallas en ordbok, karta eller shash-lista, och den får tillgång till värden baserat på nycklar (av vilken typ som helst).

2. De samlingsklasser som kan användas direkt i System.Collections är:
1) ArrayList
Implementera gränssnitt: IList, ICollection, IEnumerable
Så länge samlingen inte ändras kan ArrayList säkert stödja flera läsare samtidigt
När element läggs till i ArrayList ökar kapaciteten automatiskt vid behov genom omfördelning (2x ökning)
Om du behöver skapa en array av objekt, men inte vet storleken på arrayen i förväg, kan du använda ArrayList
ArrayList refererar till alla element som objekt, så det måste skrivas när man kommer åt element i ArrayList
Fördelar: Dynamiskt ändra storleken, flexibel och smidig insättning och borttagning av element, sorterbarhet
Nackdelar: Insättningsprestandan är inte lika bra som för arrays, inte starka typer

2) BitArray
Implementera gränssnitt: ICollection och IEnumerable
Hantera komprimerade arrayer av bitvärden.

3) Hashtabell
Implementera gränssnitt: IDictionary, ICollection, IEnumerable
Du kan fritt lägga till och ta bort element i Hashtabellen, vissa som ArrayList, men utan prestandaöverhead

4) Sorterad lista
Implementera gränssnitt: IDictionary, ICollection, IEnumerable
SortedLIst kombinerar fördelarna med ArrayList och Hashtable, och kan sorteras efter nyckelvärde

5) Kö
Implementera gränssnitt: ICollection och IEnumerable
Queques är köer, först in, först ut tillgång till enskilda element
Du kan anropa GetEnumerator()-metoden för Queque-objektet för att få IEnumerator-objektet att iterera genom elementen i kön

6) Stack
Implementera gränssnitt: ICollection och IEnumerable
En stack är en stack som får tillgång till enskilda element på en sist-in, först-ut-princip
Du kan anropa GetEnumerator()-metoden för stackobjektet för att få IEnumerator-objektet att iterera genom elementen i stacken

3. De samlingsklasser som nämnts ovan är alla allmänna samlingsklasser, och de flesta av de element de accepterar är av objekttypen när objektet placeras i
Efter samlingen förloras den ursprungliga typinformationen – det vill säga att dessa allmänna samlingsklasser inte är starkt typade
Lösningen är att använda starkt typade samlingsklasser
System.Collections-namnrymden
System.Collections.Specialiserat namnrymd Vissa klasser kan uppfylla kraven och kan användas direkt eller ärvas





Föregående:Ett öppet brev till majoriteten av snoppar på kvällen före Singeldagen
Nästa:C# Generisk Range Rover (Tur)
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com