Collection pada C#
Meskipun array pada C# dapat menyimpan banyak nilai sekaligus, mereka tidak dapat mengubah ukurannya secara dinamis. Class-class collection pada C# mirip dengan Array, tetapi dapat diubah ukurannya secara dinamis. Ada banyak class yang tersedia Collections pada C#. Di bawah ini adalah beberapa contoh program yang menggunakan Collections. Akan tetapi, sebelum itu, Saya ingin memperkenalkan perulangan foreach pada C# yang sangat berguna ketika digabungkan dengan Collection. Struktur perulangan foreach adalah:
1
2
3
4
| foreach ([Tipe data item] [IdentifierItem] In [Collection]) { //Hal yang dilakukan //Contoh: Console.WriteLine([IdentifierItem]); } |
List pada C#
Di bawah ini adalah contoh suatu program yang menggunakan List pada C#. Method yang penting pada List adalah Add, Remove, RemoveAt, dan Contains. Untuk method Remove dan Contains, kita perlu mengoverride method Equals.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
| class Program { static void Main( string [] args) { Sales oSales = new Sales(1); oSales.AddItem( "Coca Cola" , 3); oSales.AddItem( "Sprite" , 3); oSales.AddItem( "Fanta" , 5); oSales.RemoveLast(); oSales.AddItem( "Coca Cola" , 5); oSales.AddItem( "Fanta" , 3); oSales.RemoveItem( new Sales.SalesItem() { Name = "Sprite" }); oSales.RemoveItem( new Sales.SalesItem() { Name = "Sprite" }); oSales.ShowItems(); Console.ReadKey(); } } public class Sales { public int ID { get ; set ; } public DateTime TanggalBeli { get ; set ; } public List<SalesItem> Items { get ; private set ; } public Sales( int newid) { this .ID = newid; TanggalBeli = DateTime.Now; Items = new List<SalesItem>(); } public bool AddItem( string name, int jumlah) { SalesItem itemBaru = new SalesItem() { Nama = name, Jumlah = jumlah }; if (!Items.Contains(itemBaru)) { Items.Add(itemBaru); Console.WriteLine(itemBaru.Nama + " telah ditambahkan" ); return true ; } else { Console.WriteLine(itemBaru.Nama + " telah ditambahkan sebelumnya" ); return false ; } } public bool RemoveItem(SalesItem item) { if (!Items.Contains(item)) { Console.WriteLine( "Item tidak ditemukan" ); return false ; } Items.Remove(item); Console.WriteLine(item.Nama + " telah diremove" ); return true ; } public bool RemoveLast() { if (Items.Count == 0) { Console.WriteLine( "Tak ada item" ); return false ; } Console.WriteLine(Items[Items.Count - 1].Nama + " telah diremove" ); Items.RemoveAt(Items.Count - 1); return true ; } public void ShowItems() { Console.WriteLine( "------- Daftar Item ----------" ); foreach (SalesItem i in Items) { Console.WriteLine(i.Nama + ": " + i.Jumlah); } Console.WriteLine( "--------------------------------" ); } public class SalesItem { public string Nama { get ; set ; } public int Jumlah { get ; set ; } //Digunakan untuk Contains dan Remove, untuk membandingkan objek public override bool Equals( object obj) { //Dengan var, C# akan otomatis mengetahui bahwa Other adalah SalesItem var Banding = obj as SalesItem; if (Banding.Nama == this .Nama) return true ; return false ; } } } |
Dictionary pada C#
Dictionary (kamus) pada C# berisi pasangan-pasangan key dan value. Tipe item pada Dictionary adalah KeyValuePair<tipeKey, tipeValue>. Berikut adalah contoh program yang menggunakan Dictionary:
1
2
3
| class Program { static void Main( string [] args) { Dictionary< string , string > InggrisIndonesia <span style= "font-family:sans-serif,arial,verdana,trebuchet ms; line-height:1.6em" >= new Dictionary< string , string >();</span> |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| InggrisIndonesia.Add( "Get" , "Ambil" ); InggrisIndonesia.Add( "Like" , "Seperti" ); InggrisIndonesia.Add( "Book" , "Buku" ); InggrisIndonesia.Add( "I" , "Saya" ); InggrisIndonesia.Add( "Code" , "Kode" ); InggrisIndonesia.Add( "For" , "Untuk" ); InggrisIndonesia.Add( "Money" , "Uang" ); foreach (KeyValuePair< string , string > kv in InggrisIndonesia) { Console.WriteLine(kv.Key + " = " + kv.Value); } Console.WriteLine( "---------------------------" ); Console.Write( "Bahasa Indonesia dari: " ); string cari = Console.ReadLine(); if (InggrisIndonesia.ContainsKey(cari)) { Console.WriteLine(InggrisIndonesia[cari]); } else { Console.WriteLine( "Kata tidak ditemukan" ); } Console.ReadKey(); } } |
Queue pada C#
Ada 2 class Queue pada C#. Satu berada di bawah namespace System.Collections, yang lain berada di bawah namespace System.Collections.Generic. Pada program di bawah, kita menggunakan class Queue Generic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| class Program { static void Main( string [] args) { Queue<Pelanggan> antrian = new Queue<Pelanggan>(); antrian.Enqueue( new Pelanggan( "Fandi" , "62852 XXXX YYY" )); antrian.Enqueue( new Pelanggan( "Susanto" , "62813 XXXX YYY" )); antrian.Enqueue( new Pelanggan( "Billy" , "62819 XXX YYYY" )); Pelanggan Dilayani; for ( int i = 1; i <= 3; i++) { Dilayani = antrian.Dequeue(); Console.WriteLine( "Antrian No." + Dilayani.NoAntrian + ", Tuan." + Dilayani.Nama + " sedang dilayani" ); } Console.ReadKey(); } } class Pelanggan { //Access modifier tidak ditulis = internal public static int NoAntrianBerikutnya = 1; public string Nama { get ; set ; } public string Telepon { get ; set ; } public int NoAntrian { get ; set ; } public Pelanggan( string nama, string telp) { this .Nama = nama; this .Telepon = telp; this .NoAntrian = NoAntrianBerikutnya++; //Berarti: NoAntrian = NoAntrianBerikutnya //Kemudian: NoAntrianBerikutnya++ } } |
Masih ada banyak class Collection pada C#. Tetapi kita tidak akan membahas semuanya di sini. Untuk daftar class Collection pada C# yang lengkap, kunjungi MSDN.
0 komentar