Hashtable myHashtable = new Hashtable();
myHashtable.Add("AL","Alabama");
myHashtable.Add("CA","California");
myHashtable.Add("FL","Florida"); string[,]  ss = new string [3,2];

int i = 0;
foreach(string key in myHashtable.Keys)
{
ss[i,0] = key;
ss[i,1] = myHashtable[key].ToString();
i = i + 1;
}

解决方案 »

  1.   

    for(int j = 0;j < 3;j++)
    {
    for(int k = 0; k< 2; k++)
    {
    MessageBox.Show(ss[j,k]);
    }
    }
      

  2.   

    这时MSDN的解释
    当试图用多维数据会抛出异常
    ArgumentException array 是多维的。 
    - 或 -
    arrayIndex 等于或大于 array 的长度。
    - 或 -
    源 Hashtable 中的元素数大于从 arrayIndex 到目标 array 的结尾之间的可用空间。若要只复制 Hashtable 中的键,请使用 Hashtable.Keys.CopyTo。
    若要只复制 Hashtable 中的值,请使用 Hashtable.Values.CopyTo。先复制到两个一维数组,然后再遍历赋给二维数组~~如果仅仅是因为索引不方便的话,使用SortedList看看,不用二维数组