Share via


Algemene gemachtigden voor het bewerken van matrices en lijsten

Dit onderwerp bevat een overzicht van algemene gemachtigden voor conversies, zoekpredicaten en acties die moeten worden uitgevoerd op elementen van een matrix of verzameling.

Algemene gemachtigden voor het bewerken van matrices en lijsten

De Action<T> algemene gemachtigde vertegenwoordigt een methode waarmee een bepaalde actie wordt uitgevoerd op een element van het opgegeven type. U kunt een methode maken waarmee de gewenste actie op het element wordt uitgevoerd, een exemplaar van de Action<T> gemachtigde wordt gemaakt om deze methode te vertegenwoordigen en vervolgens de matrix en de gemachtigde door te geven aan de Array.ForEach statische algemene methode. De methode wordt aangeroepen voor elk element van de matrix.

De List<T> algemene klasse biedt ook een ForEach methode die gebruikmaakt van de Action<T> gemachtigde. Deze methode is niet algemeen.

Notitie

Dit maakt een interessant punt over algemene typen en methoden. De methode moet statisch zijn (Sharedin Visual Basic) en algemeen omdat dit Array geen algemeen type is. De Array.ForEach enige reden waarom u een type kunt opgeven waarmee Array.ForEach moet worden gewerkt, is dat de methode een eigen typeparameterlijst heeft. De niet-generische List<T>.ForEach methode behoort daarentegen tot de algemene klasse List<T>, dus gebruikt deze gewoon de typeparameter van de klasse. De klasse is sterk getypt, zodat de methode een instantiemethode kan zijn.

De Predicate<T> algemene gemachtigde vertegenwoordigt een methode die bepaalt of een bepaald element voldoet aan de criteria die u definieert. U kunt het gebruiken met de volgende statische algemene methoden Array om te zoeken naar een element of een set elementen: Exists, , FindFindAll, FindIndex, , FindLasten FindLastIndex.TrueForAll

Predicate<T> werkt ook met de bijbehorende niet-genrische exemplaarmethoden van de List<T> algemene klasse.

Met de Comparison<T> algemene gemachtigde kunt u een sorteervolgorde opgeven voor matrix- of lijstelementen die geen systeemeigen sorteervolgorde hebben of de systeemeigen sorteervolgorde overschrijven. Maak een methode waarmee de vergelijking wordt uitgevoerd, maak een instantie van de Comparison<T> gemachtigde die uw methode vertegenwoordigt en geef de matrix en de gemachtigde door aan de Array.Sort<T>(T[], Comparison<T>) statische algemene methode. De List<T> algemene klasse biedt een bijbehorende overbelasting van de instantiemethode. List<T>.Sort(Comparison<T>)

Met de Converter<TInput,TOutput> algemene gemachtigde kunt u een conversie tussen twee typen definiƫren en een matrix van het ene type converteren naar een matrix van het andere type of een lijst van het ene type converteren naar een lijst van het andere. Maak een methode waarmee de elementen van de bestaande lijst worden geconverteerd naar een nieuw type, maak een gemachtigde instantie om de methode weer te geven en gebruik de Array.ConvertAll algemene statische methode om een matrix van het nieuwe type te produceren op basis van de oorspronkelijke matrix, of de List<T>.ConvertAll<TOutput>(Converter<T,TOutput>) algemene instantiemethode om een lijst met het nieuwe type uit de oorspronkelijke lijst te produceren.

Gedelegeerden koppelen

Veel van de methoden die deze gemachtigden gebruiken, retourneren een matrix of lijst die kan worden doorgegeven aan een andere methode. Als u bijvoorbeeld bepaalde elementen van een matrix wilt selecteren, converteert u deze elementen naar een nieuw type en slaat u deze op in een nieuwe matrix, dan kunt u de matrix die wordt geretourneerd door de FindAll algemene methode doorgeven aan de ConvertAll algemene methode. Als het nieuwe elementtype geen natuurlijke sorteervolgorde heeft, kunt u de matrix die door de ConvertAll algemene methode wordt geretourneerd, doorgeven aan de Sort<T>(T[], Comparison<T>) algemene methode.

Zie ook