下拉列表框的这道题目是不是错了?该如何实现两项内容

下拉列表框的这道题目是不是错了?该怎么实现两项内容?
习题:设计一个“简单通讯录”程序,在窗体上建立一个下拉列表框、两个文本框和两个标签,实现如下功能:当用户在下拉式列表框中,选择一个学生姓名后,在“学生姓名”、“地址”两个文本框中分别显示出对应的姓名和地址。

窗体布局

                                下拉列表框

             学生姓名:
             地       址:

一、我的努力
       对于一个下拉列表框,要实现输出两个信息:姓名和地址,我想不出更好的方法来完成。我的思路是:再用一个下拉列表框,用于存放学生的地址,设置运行时隐藏。
      我的代码:
namespace 作业
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            cbo_Namelist.Items.Add("张无忌");
            cbo_Namelist.Items.Add("赵敏");
            cbo_Namelist.Items.Add("灭绝师太");
            cbo_Namelist.Items.Add("周芷若");
            cbo_Namelist.Items.Add("张三丰");
            cbo_Namelist.SelectedIndex = 0;
        }

        private void cbo_Namelist_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (cbo_Namelist.SelectedIndex)
            {
                case 0:
                    cb_Address.Items.Clear();
                    cb_Address.Items.Add("武当派");
                    cb_Address.SelectedIndex = 0;
                    //显示姓名
                    this.txtb_Name.Text = cbo_Namelist.SelectedItem.ToString(); 
                    //显示地址
                    this.txtb_Address.Text = cb_Address.SelectedItem.ToString();
                    break;
                case 1:
                    cb_Address.Items.Clear();
                    cb_Address.Items.Add("蒙古");
                    cb_Address.SelectedIndex = 0;
                    this.txtb_Name.Text = cbo_Namelist.SelectedItem.ToString();
                    this.txtb_Address.Text = cb_Address.SelectedItem.ToString();
                    break;
                case 2:
                    cb_Address.Items.Clear();
                    cb_Address.Items.Add("峨眉派");
                    cb_Address.SelectedIndex = 0;
                    this.txtb_Name.Text = cbo_Namelist.SelectedItem.ToString();
                    this.txtb_Address.Text = cb_Address.SelectedItem.ToString();
                    break;
                case 3:
                    cb_Address.Items.Clear();
                    cb_Address.Items.Add("峨眉派");
                    cb_Address.SelectedIndex = 0;
                    this.txtb_Name.Text = cbo_Namelist.SelectedItem.ToString();
                    this.txtb_Address.Text = cb_Address.SelectedItem.ToString();
                    break;
                case 4:
                    cb_Address.Items.Clear();
                    cb_Address.Items.Add("武当派");
                    cb_Address.SelectedIndex = 0;
                    this.txtb_Name.Text = cbo_Namelist.SelectedItem.ToString();
                    this.txtb_Address.Text = cb_Address.SelectedItem.ToString();
                    break;
                default :
                    cb_Address.Items.Clear();
                    break;
            }
        }
    }
}

二、忽然想到
我想,一道题目不太可能出错。我这样自己增加一个下拉列表框来完成这样的题目,肯定不对。可是,我想不出其他方法。希望高手大侠不吝赐教。这道题目该怎么完成?
------解决思路----------------------
或者你图省事,不用二维数组,用两个一维数组string[]来分别存放姓名和地址也是可以的
选择一项后,取出SelectedIndex就是数组的索引
------解决思路----------------------
通讯录联系人数量理论是无限的,你难道要无限添加case1,case2,case3,case4.....?


------解决思路----------------------
我认为这是一个设计上的问题,仔细思考下如何存储这些数据比较合适,不要过于纠结控件怎么用,那些只是一个表现形式而已
------解决思路----------------------
声明一个类  包含姓名和地址,赋值并添加到list集合,绑定到cbo的DataSource(msdn上有实例);
在selectedIndexChanged事件中   获取  SelectedItem   ,在转换成你定义的类,把类的属性赋值给textbox控件。就这么简单,不用搞的那么费劲
------解决思路----------------------
winform,直接把数据源在类里面private个字段放着,在下拉列表的事件中去数据源中找对应的数据不就行了