Better syntax to create hash in C#

4 views
Skip to first unread message

Ikhwan Hayat

unread,
Jan 5, 2010, 9:49:21 PM1/5/10
to ALTNETMY
Assalamu'alaikum,

Antara jenis collection yang banyak digunakan ialah Dictionary
(Hashtable), tapi syntax utk tambah element kat dalamnya quite verbose
banding dengan language2 lain mcm PHP, Ruby, etc.

So, aku cuba buat satu cara utk tambah element menggunakan lambda
expression. Cuba tgk:

----

using System;
using System.Collections.Generic;

public static class CollectionsExtensions
{
public static Dictionary<string, TValue> Add<TValue>(this
Dictionary<string, TValue> me, params
System.Linq.Expressions.Expression<Func<string, TValue>>[] pairs)
{
foreach (var pair in pairs)
{
me.Add(pair.Parameters[0].Name, pair.Compile().Invoke
(""));
}
return me;
}
}

public class Tester
{
public static void Main()
{
Console.WriteLine("Ordinary way...");
var d1 = new Dictionary<string, int>(){
{ "a", 1 },
{ "b", 2 },
{ "c", 3 }
};

foreach(var i in d1)
Console.WriteLine("Key: {0} Value: {1}", i.Key, i.Value);

Console.WriteLine("Using lambda functions to add
elements...");
var d2 = new Dictionary<string, int>().Add(
a => 1,
b => 2,
c => 3
);

foreach(var i in d2)
Console.WriteLine("Key: {0} Value: {1}", i.Key, i.Value);

Console.Read();
}
}

---- http://gist.github.com/269956

Apa pendapat anda?

Berbaloi menggunakn syntax yg (rasanya) lebih pendek ni in expense of:
- Performance
- Needing to add another library (kalau kita letakkan extension method
tu dlm library)

Reply all
Reply to author
Forward
0 new messages