ضمناً براي انعطاف پذيري آرايه ها هم توي دات نت اگه اشتباه نكنم راه معادل امكانات PHP اينطوري هست:

$x['id']=5;
$x['name']='ali';
$x['grade']=19.25;
$x['deleted']=false;
foreach($x as $key=>$value)
{
echo $key.' => '.$value.'';
}

و معادلش در ASPX :

using System.Collections;
...
HashTable x = new HashTable();
x.Add("id",5);
x.Add("name","ali");
x.Add("grade",19.25);
x.Add("deleted",false);
foreach(DictionaryEntry de in x)
{
Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value);
}

نكته: در صفحه وب به جاي كلاس كنسول بايد از كلاس خاصي كه براي نوشتن در صفحه وب هست استفاده كرد ولي اين مورد كه گفتم فقط يك مثاله كه ببينيد با چه دردسري به عناصر يك آرايه با انواع مختلف ميشه دسترسي داشت. تازه اين كل ماجرا نيست. خاصيت Value در عناصر DictionaryEntry از نوع object هست و بايد توسط عمليات Unboxing در زمان نياز، به نوع موردنظر تبديل بشه. مثلاً اگه بخوايم به مقدار عنصري از نوع عدد صحيح دسترسي داشته باشيم و اون رو توي يك عبارت محاسباتي استفاده كنيم، بايد قبلش (int) بنويسيم. اين يعني مقيد بودن كامل به نوع و دقيقاً معناي عدم آزادي عمل در نوع متغير رو خواهد داشت.
موفق باشيد.