c collections arraylist
C # -samlingar är de specialiserade klasserna för att lagra och modifiera data. I den här handledningen lär du dig om C # -samlingar som ArrayList, HashTable & SortedList med exempel:
De tjänar olika syften som dynamisk minnesallokering, bedömning av icke-sekventiell data etc.
Alla dessa klasser använder objektklassen som är basklassen för alla andra datatyper.
=> Se upp hela C # Training Series här
Vad du kommer att lära dig:
bästa röstväxlarapp för pc
- C # -samlingar och deras användning
- C # ArrayList
- Hur initiera en ArrayList?
- Hur lägger man till element i en ArrayList?
- Hur får jag tillgång till ett element från en ArrayList?
- Hur sätter man in ett element i ArrayList?
- Hur tar jag bort ett element från ArrayList?
- Hur tar jag bort listelement med hjälp av indexet?
- Hur man sorterar och omvandlar en ArrayList?
- C # HashTable
- C # SortedList
- C # ArrayList
- Slutsats
C # -samlingar och deras användning
C # ArrayList
ArrayList är en del av samlingar i C #. Den används för att innehålla data av vilken datatyp som helst. Det liknar en matris i C # men den har ingen bestämd storlek. Dess storlek ökar automatiskt när fler element läggs till i den.
Hur initiera en ArrayList?
ArrayList kan initieras med hjälp av nyckelordet 'ArrayList'.
ArrayList arrList = new ArrayList();
Hur lägger man till element i en ArrayList?
Du kan lägga till ett enskilt objekt i en matrislista genom att använda metoden Lägg till () och ett antal element eller flera element från en annan samling med metoden AddRange ().
Exempel:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string() args) { ArrayList arrList = new ArrayList(); arrList.Add(7896); arrList.Add('Seven'); Console.ReadLine(); } } }
Här kan du se att vi har använt ArrayList.Add () -metoden. Som du märker har vi lagt till både heltal och sträng i samma array-lista. Detta är möjligt eftersom en matrislista är av icke-generisk datatyp, dvs. den kan innehålla ett element av vilken datatyp som helst.
Hur får jag tillgång till ett element från en ArrayList?
Ett array-listelement kan nås på samma sätt som en array, dvs. genom att använda indexet. Men eftersom det är en icke-generisk typ, måste vi först kasta den till en lämplig datatyp eller behöva använda var nyckelord när vi får åtkomst till ett värde från matrislistan.
Exempel:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string() args) { ArrayList arrList = new ArrayList(); arrList.Add(7896); arrList.Add('Seven'); //casted and retrieved data int first_index = (int)arrList(0); string second_index = (string)arrList(1); Console.WriteLine('The first index value is : ' + first_index); Console.WriteLine('The second index value is : ' + second_index); Console.ReadLine(); } } }
I exemplet ovan har vi hämtat data med hjälp av indexet för arraylistan och sedan har vi kastat det till lämplig datatyp. Resultaten har sedan skrivits ut på konsolen som utdata.
Utgången för ovanstående program blir:
Produktion
Det första indexvärdet är: 7896
Det andra indexvärdet är: Sju
Hur sätter man in ett element i ArrayList?
Att infoga ett element i ArrayList vid en viss punkt eller ett index. metoden Insert () används.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string() args) { ArrayList arrList = new ArrayList(); arrList.Add(7896); arrList.Add('Seven'); //casted and retrieved data int first_index = (int)arrList(0); string second_index = (string)arrList(1); Console.WriteLine('The first index value is : ' + first_index); Console.WriteLine('The second index value is : ' + second_index); arrList.Insert(1, 'Eight'); second_index = (string)arrList(1); Console.WriteLine('The second index value is : ' + second_index); Console.ReadLine(); } } }
Således har vi infogat en ny sträng i index 1 med metoden insert (). Så om vi kör programmet ovan får vi följande resultat:
Produktion
Det första indexvärdet är: 7896
Det andra indexvärdet är: Sju
Det andra indexvärdet är: Åtta
Hur tar jag bort ett element från ArrayList?
Ett element kan tas bort från ArrayList med metoden Ta bort (). Ta bort-metoden accepterar en parameter, dvs det värde som måste tas bort från matrisen.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string() args) { ArrayList arrList = new ArrayList(); arrList.Add(7896); arrList.Add('Seven'); //casted and retrieved data int first_index = (int)arrList(0); string second_index = (string)arrList(1); Console.WriteLine('The first index value is : ' + first_index); Console.WriteLine('The second index value is : ' + second_index); arrList.Insert(1, 'Eight'); second_index = (string)arrList(1); Console.WriteLine('The second index value is : ' + second_index); arrList.Remove(7896); var data = arrList(0); Console.WriteLine('The value at 0 index is : ' + data); Console.ReadLine(); } } }
Metoden ta bort tar bort det angivna värdet från listan. När värdet tas bort från det givna indexet flyttar det efterföljande värdet ett index uppåt för att fylla gapet. När vi tar bort 0 index flyttas värdet från index 1 och fyller tomrummet vid 0.
Resultatet för följande program kommer att vara:
Produktion
Det första indexvärdet är: 7896
Det andra indexvärdet är: Sju
Det andra indexvärdet är: Åtta
Värdet vid 0-index är: Åtta
Hur tar jag bort listelement med hjälp av indexet?
Användaren kan ta bort ett listelement från ett visst index med hjälp av metoden RemoveAt (). RemoveAt () accepterar en enda parameter med ett indexnummer från vilket elementet måste tas bort. På samma sätt som metoden Ta bort, kommer ett element från mitten att flyttas nästa element för att flytta ett steg uppåt för att fylla luckan.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string() args) { ArrayList arrList = new ArrayList(); arrList.Add(7896); arrList.Add('Seven'); //casted and retrieved data int first_index = (int)arrList(0); string second_index = (string)arrList(1); Console.WriteLine('The first index value is : ' + first_index); Console.WriteLine('The second index value is : ' + second_index); arrList.Insert(1, 'Eight'); second_index = (string)arrList(1); Console.WriteLine('The second index value is : ' + second_index); arrList.RemoveAt(1); var data = arrList(1); Console.WriteLine('The value at 1 index is : ' + data); Console.ReadLine(); } } }
I ovanstående exempel har vi använt, RemoveAt för att ta bort index 1. Därför bör elementet vid index 2 flytta till index 1 för att ersätta klyftan.
Resultatet för följande program kommer att vara:
Produktion
kopiera DVD till hårddisk gratis
Det första indexvärdet är: 7896
Det andra indexvärdet är: Sju
Det andra indexvärdet är: Åtta
Värdet vid 1 index är: Sju
Hur man sorterar och omvandlar en ArrayList?
ArrayList erbjuder två olika metoder för sortering och omvänd operation. Det finns bara ett villkor, dvs alla element i matrislistan ska ha samma datatyp för jämförelse med en komparator, annars kommer det att kasta ett runtime-fel.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string() args) { ArrayList arrList = new ArrayList(); arrList.Add(7); arrList.Add(4); arrList.Add(5); arrList.Add(1); arrList.Add(3); Console.WriteLine('Original Array List'); foreach (var v in arrList) { Console.Write(v + ' '); } //sorting an array list Console.WriteLine(); Console.WriteLine('Sorted Array List'); arrList.Sort(); foreach (var srt in arrList) { Console.Write(srt + ' '); } //Reversing an array list Console.WriteLine(); Console.WriteLine('Reversed Array List'); arrList.Reverse(); foreach (var rvrs in arrList) { Console.Write(rvrs + ' '); } Console.ReadLine(); } } }
I ovanstående program har vi först skapat en array-lista med heltal datatyp och sedan har vi använt sorteringsmetoden för att sortera listan och den omvända metoden för att vända den sorterade listan.
Så resultatet av följande lista kommer att vara:
Produktion
Original Array List
7 4 5 1 3
Sorterad matrislista
1 3 4 5 7
Omvänd matrislista
7 5 4 3 1
C # HashTable
System.Collections namnområde i C # innehåller Hashtable som liknar ordboken. Hashtable lagrar data i form av nyckel-värdepar.
Det gör det internt genom att tilldela en hash-kod till hash-nyckeln internt och när data nås matchar den hash-koden med en hash-nyckel för att hämta data. Varje objekt i tabellen har ett nyckel-värdepar
Hur initierar jag en HashTable?
En HashTable kan initieras med hjälp av nyckelordet HashTable och sedan skapa en instans av den.
Hashtable hashtbl = new Hashtable();
Hur lägger jag till element i en HashTable?
Element kan läggas till i HashTable med metoden Add (). Det gör att användarna kan lägga till ett objekt med dess nyckel och värde. Det är inte viktigt att beskriva datatypen för nyckeln eller värdet. När du lägger till element i HashTable bör du komma ihåg att nycklarna inte kan innehålla null vars värden kan vara null.
HashTable.Add (nycklar, värden);
Exempel:
class Program { static void Main(string() args) { Hashtable hashtbl = new Hashtable(); hashtbl.Add('Number',1); hashtbl.Add('Car', 'Ferrari'); hashtbl.Add(8, 'eight'); } }
Som du kan se har vi lagt till olika datatyper som nycklar och värden.
Hur får jag tillgång till element som finns i en hashtabell?
Man kan hämta värdet på valfri nyckel från Hashtable med hjälp av en indexerare. Men indexeraren kräver också en nyckel för att komma åt och hämta värdet från tabellen.
Låt oss lägga till ett litet kodavsnitt i ovanstående program för att hämta värden:
class Program { static void Main(string() args) { Hashtable hashtbl = new Hashtable(); hashtbl.Add('Number',1); hashtbl.Add('Car', 'Ferrari'); hashtbl.Add(8, 'eight'); int value1 = (int)hashtbl('Number'); String value2 = (string)hashtbl('Car'); String value3 = (string)hashtbl(8); Console.WriteLine(value1); Console.WriteLine(value2); Console.WriteLine(value3); Console.ReadLine(); } }
Nu om vi utför detta kommer följande produktion att produceras:
ett
ferrari
åtta
I ovanstående program har vi kastat värdet på alla nycklar för en given datatyp för att ta bort eventuella kompileringsfel som kan uppstå. Detta beror på att Hashtable är en icke-generisk samling som inte innehåller information om datatypen för något av dess innehåll, dvs. nycklar och värden.
Därför, om vi direkt försöker få datakompilatorn, kommer vi att bli förvirrade över datatypen och kasta ett fel.
Hur tar man bort ett element från Hashtable?
Låt oss säga att vi vill ta bort ett visst nyckel-värdepar från Hashtable. För att uppnå detta måste vi använda borttagningsmetoden () som erbjuds av samlingarna. Ta bort metod tar bort ett givet nyckel-värdepar från Hashtable permanent.
Ta bort (nyckel);
Låt oss lägga till borttagningsmetoden i programmet ovan för att få idén:
class Program { static void Main(string() args) { Hashtable hashtbl = new Hashtable(); hashtbl.Add('Number',1); hashtbl.Add('Car', 'Ferrari'); hashtbl.Add(8, 'eight'); int value1 = (int)hashtbl('Number'); String value2 = (string)hashtbl('Car'); String value3 = (string)hashtbl(8); Console.WriteLine(value1); Console.WriteLine(value2); Console.WriteLine(value3); //now we remove a key hashtbl.Remove(8); //Lets try to find the remove key now String valueRemoved = (string)hashtbl(8); Console.WriteLine('The value of the given key is :'+valueRemoved); Console.ReadLine(); } }
Resultatet från ovanstående program kommer att vara följande.
ett
Ferrari
åtta
Värdet på den angivna nyckeln är:
Nej, värdet skrivs ut på konsolen eftersom vi har tagit bort nyckeln från Hashtable. Därför är strängvärdet från valueRemoved null.
Om du vill ta bort allt från hashtabellen, ger C # oss en annan metod som heter Clear (). Ta bort metod tar bort ett nyckel-värdepar i taget medan rensningsmetoden tar bort allt från hashmap.
Låt oss ta en titt på programmet nedan för att göra detta:
class Program { static void Main(string() args) { Hashtable hashtbl = new Hashtable(); hashtbl.Add('Number',1); hashtbl.Add('Car', 'Ferrari'); hashtbl.Add(8, 'eight'); int value1 = (int)hashtbl('Number'); String value2 = (string)hashtbl('Car'); String value3 = (string)hashtbl(8); Console.WriteLine(value1); Console.WriteLine(value2); Console.WriteLine(value3); //now we remove a key hashtbl.Remove(8); //Lets try to find the remove key now String valueRemoved = (string)hashtbl(8); Console.WriteLine('The value of the given key is :'+valueRemoved); // clearing all data from the HashTable hashtbl.Clear(); Console.ReadLine(); } }
Ovanstående program tar bort alla element från hashtable och gör det tomt.
Andra viktiga metoder som erbjuds av Hashtable är ContainsKey () och ContainsValue (). Båda dessa metoder accepterar ett argument som är en nyckel eller ett värde och returnerar ett booleskt värde. Så, om parametern som skickas med den här metoden finns i hashtabellen, returnerar den ett sant värde och om den inte är närvarande returneras falskt.
C # SortedList
Som namnet antyder innehåller SortedList sorterade data i stigande ordning. Det liknar Hashtable eftersom det innehåller liknande nyckel-värdepar. Alla nycklar som sätts in eller läggs till i SortedList ordnas automatiskt i stigande ordning.
Hur initierar jag en sorterad lista?
En SortedList kan initialiseras med hjälp av nyckelordet SortedList och skapa en objektinstans för den.
hur man tar bort element från en array-Java
SortedList sortedList = new SortedList();
Objektet kan sedan användas för att utföra operationer med egenskapen SortedList och metoder.
Hur lägger jag till ett element i en sorterad lista?
Du kan lägga till ett element i en SortedList med metoden Add (). En SortedList kräver att du lägger till en nyckel och ett värde. Du kan lägga till nycklar och värden i valfri ordning och den sorterade listan ordnar alla tillagda element i stigande ordning.
class Program { static void Main(string() args) { SortedList sortedList = new SortedList(); sortedList.Add(2, 'Two Pineapples'); sortedList.Add(4, 'Four Apples'); sortedList.Add(3, 'Three Lemons'); sortedList.Add(5, 'Five Mangoes'); sortedList.Add(1, 'One Tree'); Console.ReadLine(); } }
I ovanstående program kan du se att vi har lagt till heltal som nyckel och sedan sträng som värden. Du kan lägga till vilken datatyp du vill och i vilken ordning du vill. SortedList ordnar den i stigande ordning.
På samma sätt som HashTable kan nycklar inte vara noll och alla nycklar ska ha samma datatyp för jämförelse, annars kommer det att ge ett kompileringsfel.
Den sorterade listan sorterar elementet varje gång du lägger till dem. Så även om du lägger till något element efter att sorteringen har gjorts sorterar den igen och lägger till elementet i sitt lämpliga index.
Hur får man tillgång till elementen från en sorterad lista?
Ett värde i den sorterade listan kan nås med hjälp av knappen.
Låt oss lägga till en enkel kod för att hämta värdet från SortedList som beskrivs i föregående exempel:
class Program { static void Main(string() args) { SortedList sortedList = new SortedList(); sortedList.Add(2, 'Two Pineapples'); sortedList.Add(4, 'Four Apples'); sortedList.Add(3, 'Three Lemons'); sortedList.Add(5, 'Five Mangoes'); sortedList.Add(1, 'One Tree'); string i = (string)sortedList(1); string j = (string)sortedList(5); string k = (string)sortedList(3); Console.WriteLine(i); Console.WriteLine(j); Console.WriteLine(k); Console.ReadLine(); } }
Utdata från ovanstående kodavsnitt kommer att vara:
Ett träd
Fem mango
Tre citroner
I kodavsnittet ovan måste vi kasta värdet på alla nycklar för en viss datatyp för att ta bort alla kompileringsfel som kan uppstå med datatypen för värdet. Detta görs för att säkerställa att ett kompileringsfel inte kastas, även om vissa nycklar innehåller olika datatyper.
Hur validerar jag om en viss nyckel finns i en sorterad lista?
Det finns två inbyggda metoder, dvs. Innehåller () och Innehåller nyckel () som hjälper oss att avgöra om en viss nyckel finns i en sorterad lista. ConstainsValue () är en annan metod som används för att avgöra om ett visst värde finns i insamlingen eller inte.
Låt oss titta på ett enkelt program för att lära dig mer om dessa metoder.
class Program { static void Main(string() args) { SortedList sortedList = new SortedList(); sortedList.Add(2, 'Two Pineapples'); sortedList.Add(4, 'Four Apples'); sortedList.Add(3, 'Three Lemons'); sortedList.Add(5, 'Five Mangoes'); sortedList.Add(1, 'One Tree'); //boolean value for key 5 bool key = sortedList.ContainsKey(5); //boolean value for vlaue 'One Tree' bool val = sortedList.ContainsValue('One Tree'); //Boolean value for unavailable key bool unKey = sortedList.ContainsKey(25); //Boolean value for unavailable value bool unVal = sortedList.ContainsValue('some randome value'); Console.WriteLine('The sorted list contains 5 key :' + key); Console.WriteLine('The sorted list contains One Tree value :' + val); Console.WriteLine('The sorted list contains 25 key :' +unKey); Console.WriteLine('The sorted list contains some random value:' + unVal); Console.ReadLine(); } }
Resultatet från ovanstående program kommer att vara:
Den sorterade listan innehåller 5 nycklar: True
Den sorterade listan innehåller ett trädvärde: sant
Den sorterade listan innehåller 25 nycklar: False
Den sorterade listan innehåller något slumpmässigt värde: Falskt
I ovanstående program kan du tydligt se att om värdet eller nyckeln finns i den sorterade listan, returneras ett sant värde och om det saknas returneras ett falskt värde.
Hur tar jag bort ett element från SortedList?
Den sorterade listan erbjuder metoder för att ta bort () och ta bort () för att ta bort alla element som finns i en sorterad lista. Ta bort accepterar ett enda argument med nyckelnamnet och RemoveAt accepterar också ett enda argument men med index.
Båda dessa metoder tar bort alla element som finns i den sorterade listan baserat på argumentet.
Låt oss titta på en enkel kod för att förstå den tydligare.
class Program { static void Main(string() args) { SortedList sortedList = new SortedList(); sortedList.Add(2, 'Two Pineapples'); sortedList.Add(4, 'Four Apples'); sortedList.Add(3, 'Three Lemons'); sortedList.Add(5, 'Five Mangoes'); sortedList.Add(1, 'One Tree'); //The Remove() method accepts key as argument and removes both the key and the value sortedList.Remove(1); //Now we will check if the key is present bool rmvKey = sortedList.ContainsKey(1); Console.WriteLine('The presence if the key is: ' + rmvKey); //The RemoveAt() method acceots index as argument and remove any key and value present at that index sortedList.RemoveAt(3); Console.ReadLine(); } }
Resultatet från ovanstående program kommer att vara:
Närvaron om nyckeln är: Falsk
I ovanstående program använde vi först metoden Ta bort för att ta bort ett nyckel-värdepar med hjälp av nyckeln. Detta tar bort alla nyckel-värdepar som matchar nyckeln i argumentet. Sedan använde vi ContainsKey-metoden för att verifiera att den borttagna nyckeln inte längre finns i den sorterade listan.
I nästa rad använde vi metoden RemoveAt som tar bort element som använder indexet. Således, som vi diskuterade tidigare när det specifika elementet kommer att tas bort från index, kommer ett annat element att flyttas upp för att ordna om och behålla den sorterade liststrukturen.
Slutsats
Samlingar är dedikerade klasser som finns på programmeringsspråket C # för att lagra och hantera data. Dessa används för att utföra specifika åtgärder, dvs för att skapa dynamiska listor, omvänd, sortera, etc. på en given datamängd.
I den här handledningen lärde vi oss om ArrayList som liknar en matris i vissa aspekter men inte har någon fördefinierad storlek. Vi lärde oss också om HashTable som lagrar data i nyckel-värdepar. Vilket värde som helst kan hämtas med hjälp av nyckeln.
Vi lärde oss också om den sorterade listan som liknar en HashTable men den sorterar automatiskt alla data som finns i den, i stigande ordning baserat på tangenterna.
Data i den sorterade listan är alltid i stigande ordning, dvs även om du tar bort ett visst element från mitten eller lägger till ett nytt element i den sorterade listan, kommer det automatiskt att ordna alla data i stigande ordning.
Exempelkod
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using SeleniumFrameWork.FrameworkEssentials; using SeleniumFrameWork.FrameWorkSupportModules; namespace ConsoleApp1 { class Program { static void Main(string() args) { /* Array List Code */ ArrayList arrList = new ArrayList(); arrList.Add(7); arrList.Add(4); arrList.Add(5); arrList.Add(1); arrList.Add(3); Console.WriteLine('Original Array List'); foreach (var v in arrList) { Console.Write(v + ' '); } //sorting an array list Console.WriteLine(); Console.WriteLine('Sorted Array List'); arrList.Sort(); foreach (var srt in arrList) { Console.Write(srt + ' '); } //Reversing an array list Console.WriteLine(); Console.WriteLine('Reversed Array List'); arrList.Reverse(); foreach (var rvrs in arrList) { Console.Write(rvrs + ' '); } /* HashTable Code */ Hashtable hashtbl = new Hashtable(); hashtbl.Add('Number', 1); hashtbl.Add('Car', 'Ferrari'); hashtbl.Add(8, 'eight'); int value1 = (int)hashtbl('Number'); String value2 = (string)hashtbl('Car'); String value3 = (string)hashtbl(8); Console.WriteLine(value1); Console.WriteLine(value2); Console.WriteLine(value3); //now we remove a key hashtbl.Remove(8); //Lets try to find the remove key now String valueRemoved = (string)hashtbl(8); Console.WriteLine('The value of the given key is :' + valueRemoved); // clearing all data from the HashTable hashtbl.Clear(); /* Sorted List Code */ SortedList sortedList = new SortedList(); sortedList.Add(2, 'Two Pineapples'); sortedList.Add(4, 'Four Apples'); sortedList.Add(3, 'Three Lemons'); sortedList.Add(5, 'Five Mangoes'); sortedList.Add(1, 'One Tree'); string i = (string)sortedList(1); string j = (string)sortedList(5); string k = (string)sortedList(3); Console.WriteLine(i); Console.WriteLine(j); Console.WriteLine(k); //boolean value for key 5 bool key = sortedList.ContainsKey(5); //boolean value for vlaue 'One Tree' bool val = sortedList.ContainsValue('One Tree'); //Boolean value for unavailable key bool unKey = sortedList.ContainsKey(25); //Boolean value for unavailable value bool unVal = sortedList.ContainsValue('some randome value'); Console.WriteLine('The sorted list contains 5 key :' + key); Console.WriteLine('The sorted list contains One Tree value :' + val); Console.WriteLine('The sorted list contains 25 key :' +unKey); Console.WriteLine('The sorted list contains some randome value:' + unVal); //The Remove() method accepts key as argument and removes both the key and the value sortedList.Remove(1); //Now we will check if the key is present bool rmvKey = sortedList.ContainsKey(1); Console.WriteLine('The presence if the key is: ' + rmvKey); //The RemoveAt() method acceots index as argument and remove any key and value present at that index sortedList.RemoveAt(3); Console.ReadLine(); } } }
=> Leta efter Easy C # Training Guide här
Rekommenderad läsning
- Python DateTime-handledning med exempel
- Klipp kommandot i Unix med exempel
- Unix Cat Command Syntax, alternativ med exempel
- Användning av markören i MongoDB med exempel
- Ls Command i Unix med exempel
- MongoDB Sort () -metod med exempel
- Grep Command i Unix med enkla exempel
- Användning av ObjectId () i MongoDB med exempel