Saturday, April 23, 2011 1:00 AM dede

Index Dictionary

Q:
Bagaimana cara kita mengambil value dari Dictionary dengan index-nya?

A:
Dictionary sendiri tidak memiliki index, tapi kita bisa meng-index-kan KeyCollection-nya.


// C#
var dictOfCountrys =
	new Dictionary
		{
			{"Jakarta", "Indonesia"},
			{"Tokyo", "Japan"},
			{"London", "England"},
			{"Sidney", "Australia"},
			{"Roma", "Italy"}
		};

var keyIndexNo2 = dictOfCountrys.Keys.ElementAtOrDefault(2);
var keyIndexLast = dictOfCountrys.Keys.ElementAtOrDefault(dictOfCountrys.Count - 1);

var valueIndexNo2 = dictOfCountrys[keyIndexNo2];
var valueIndexLast = dictOfCountrys[keyIndexLast];

Console.WriteLine("index: 2, key: {0}, value: {1}", keyIndexNo2, valueIndexNo2);
Console.WriteLine("index: {0}, key: {1}, value: {2}", dictOfCountrys.Count - 1, keyIndexLast, valueIndexLast);
Console.WriteLine("-------------------------------------------");


for (var i = 0; i < dictOfCountrys.Count; i++)
{
	var key = dictOfCountrys.Keys.ElementAtOrDefault(i);
	Console.WriteLine("index: {0}, key: {1}, value: {2}", i, key, dictOfCountrys[key]);
}

Console.Read();


' VB.Net
Dim dictOfCountrys = New Dictionary(Of String, String)
dictOfCountrys.Add("Jakarta", "Indonesia")
dictOfCountrys.Add("Tokyo", "Japan")
dictOfCountrys.Add("London", "England")
dictOfCountrys.Add("Sidney", "Australia")
dictOfCountrys.Add("Roma", "Italy")

Dim keyIndexNo2 = dictOfCountrys.Keys.ElementAtOrDefault(2)
Dim keyIndexLast = dictOfCountrys.Keys.ElementAtOrDefault(dictOfCountrys.Count - 1)

Dim valueIndexNo2 = dictOfCountrys(keyIndexNo2)
Dim valueIndexLast = dictOfCountrys(keyIndexLast)

Console.WriteLine("index: 2, key: {0}, value: {1}", keyIndexNo2, valueIndexNo2)
Console.WriteLine("index: {0}, key: {1}, value: {2}", dictOfCountrys.Count - 1, keyIndexLast, valueIndexLast)
Console.WriteLine("-------------------------------------------")

For i As Int32 = 0 To dictOfCountrys.Count - 1 Step 1
	Dim key = dictOfCountrys.Keys.ElementAtOrDefault(i)
	Console.WriteLine("index: {0}, key: {1}, value: {2}", i, key, dictOfCountrys(key))
Next

Console.Read()


// F#
open System
open System.Collections.Generic
open System.Linq

let dictOfCountrys = new Dictionary()
dictOfCountrys.Add("Jakarta", "Indonesia")
dictOfCountrys.Add("Tokyo", "Japan")
dictOfCountrys.Add("London", "England")
dictOfCountrys.Add("Sidney", "Australia")
dictOfCountrys.Add("Roma", "Italy");;

let keyIndexNo2 = dictOfCountrys.Keys.ElementAtOrDefault(2)
let keyIndexLast = dictOfCountrys.Keys.ElementAtOrDefault(dictOfCountrys.Count - 1)

let valueIndexNo2 = dictOfCountrys.Item(keyIndexNo2)
let valueIndexLast = dictOfCountrys.Item(keyIndexLast)

printfn "index: 2, key: %s, value: %s" keyIndexNo2 valueIndexNo2
printfn "index: %i, key: %s, value: %s" (dictOfCountrys.Count - 1) keyIndexLast valueIndexLast
printfn "-------------------------------------------"

for i = 0 to (dictOfCountrys.Count - 1) do
    let key = dictOfCountrys.Keys.ElementAtOrDefault(i)
    printfn "index: %i, key: %s, value: %s" i key (dictOfCountrys.Item(key))

Console.ReadLine() |> ignore


# IronPython
import clr
clr.AddReference('System.Core')
from System import *
from System.Collections import *
from System.Collections.Generic import *

import System
clr.ImportExtensions(System.Linq)

dict = { 'Jakarta':'Indonesia', 'Tokyo':'Japan', 'London':'England', 'Sidney':'Australia', 'Roma':'Italy' } 
dictOfCountrys = Dictionary[String, String](dict)

keyIndexNo2 = dictOfCountrys.Keys.ElementAtOrDefault(2)
keyIndexLast = dictOfCountrys.Keys.ElementAtOrDefault(dictOfCountrys.Count - 1)

valueIndexNo2 = dictOfCountrys[keyIndexNo2]
valueIndexLast = dictOfCountrys[keyIndexLast]

print 'index: 2, key: {0}, value: {1}'.format(keyIndexNo2, valueIndexNo2)
print 'index: {0}, key: {1}, value: {2}'.format(dictOfCountrys.Count - 1, keyIndexLast, valueIndexLast)
print '---------------------------------'

for i in range(dictOfCountrys.Count):
    key = dictOfCountrys.Keys.ElementAtOrDefault(i)
    print 'index: {0}, key: {1}, value: {2}'.format(i, key, dictOfCountrys[key])
Share this post: | | | |
Filed under: , , , , ,

Comments

No Comments