对象列表之间的复制
public partial class Form1 : Form
     {
         private student s1 = null;
         List<student> listOld = null;
         List<student> listNew = null;
         student[] stu = null;
         public Form1()
         {
             InitializeComponent();
         }
         #region
         /// <summary>
         /// LOAD
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="e"></param>
         private void Form1_Load(object sender, EventArgs e)
         {               
             s1 = new student();
             s1.Age = 19;
             s1.Descriptiion = "我可是个好学生啊";
             s1.Name = "吴海华";
             s1.Sex = true;
             listOld = new List<student>();
             listOld.Add(s1);            
         }
         #endregion
         #region 复制
         /// <summary>
         /// 复制
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="e"></param>
         private void btnChange_Click(object sender, EventArgs e)
         {
             stu = new student[listOld.Count];
             listOld.CopyTo(stu);
             listNew = stu.ToList<student>();
           //当新的列表改变时,旧的列表的值应该不发生变化,但发生了变化,为什么?
             foreach (student s22 in listNew)
             {
                 s22.Name = this.txtChange.Text.Trim();
             }
         }
         #endregion
     }
------解决方案--------------------因为复制是一个深拷贝,即原来对像的引用也拷贝过来了,所以你可以用Clone
stu = (student[])listOld.Clone(); 
listNew = stu.ToList <student>();  
------解决方案--------------------肯定是这样子,因为列表里存放的是引用,
两种方式解决
一是自己实现列表,控制列表的拷贝
二是把引用对象换为值类型
------解决方案--------------------引用7楼的:
肯定是这样子,因为列表里存放的是引用,  
两种方式解决  
一是自己实现列表,控制列表的拷贝  
二是把引用对象换为值类型
这个正解,看lz的意图是要将加入listOld中的student对象复制到listNew中;
建议方法:
方法1、将student从class转化为struct类型。
方法2、为student类添加Clone方法使用类似下面的方法进行复制:
   foreach(student item in listOld)
   {
       listNew.Add(item.Clone());
   }