using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;namespace 索引器练习1
{
    public class IndexClass
    {        private Hashtable name = new Hashtable();
        public string this[int index]
        {            get 
            {                return name[index].ToString();
            }
            set 
            {                this.name.Add(index, value);//因为这里是调用A索引器,通过编号的索引来找字符,所以name在前,value在后面
            }
        }
        public int this[string s_name]
        {            get
            { 
                 
                 foreach(DictionaryEntry de in name)
                {
               
                   return Convert.ToInt32(de.Key);
  
                }
                 return(1);
               }             
                 
            set 
            {                this.name.Add(value, s_name);//因为这里是调用B索引器,通过字符的索引来找编号,所以value在前,name在后面
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            // 这里是调用A索引器
            IndexClass ic = new IndexClass();
           
            ic[100] = "张三";
            ic[200] = "李四";
            ic[300] = "王五";            Console.WriteLine("  编号为100的员工是: " + ic[100]);
            Console.WriteLine("  编号为200的员工是: " + ic[200]);//因为这里是调用A索引器,通过编号的索引来找字符
            Console.WriteLine("  编号为300的员工是: " + ic[300]);            //这里是调用B索引器            Console.WriteLine();
            Console.WriteLine("张三的编号是:"+ic["张三"]);//因为这里是调用B索引器,通过字符的索引来找编号
            Console.WriteLine("李四的编号是:"+ic["李四"]);
            Console.WriteLine("王五的编号是:"+ic["王五"]);            ic["马六"] = 400;
            ic["钱七"] = 500;            //调用A索引器
            Console.WriteLine();
            Console.WriteLine("  编号为400的员工是: " + ic[400]);
            Console.WriteLine("  编号为500的员工是: " + ic[500]); //因为这里是调用A索引器,通过编号的索引来找字符            Console.ReadLine();        }
    }
}请各位大侠看下是不是程序哪里有问题啊?
程序可以运行,可是在用字符找标号的时候读出来的数据只能是最后一个的编号。而且读出来的3个编号都是一样的,请问是不是遍历那里除了问题呢?下面是问题啊://因为这里是调用B索引器,通过字符的索引来找编号
//调用B索引器
Console.WriteLine("张三的编号是:" + b["张三"]);  
Console.WriteLine("李四的编号是:" + b["李四"]);  
Console.WriteLine("王五的编号是:" + b["王五"]);  这里只能找到最后一个的编号,前面的字符对应的编号循环不出来,请问怎么才能让每个都能遍历出来呢?运行出来的结果是:
张三的编号是:300
李四的编号是:300
王五的编号是:300