List<M_Model.PageInfo>解释为强类型列表,何为强类型列表?这段代码的功能就是检索数据库中的表,并且将数据库中的表的每一条记录的信息都存储在“Model”中,然后将每一个“Model”放入“List<M_Model.PageInfo>”中,Model里有很多字段。

现在的问题是:List<M_Model.PageInfo>就像当于是一个“Model”的集合,用它和直接用DataTable有什么差别,有什么优势???
代码如下:
/// <summary>
        /// 返回角色权限信息(页面名字和权限匹配)
        /// </summary>
        /// <returns></returns>
        public List<M_Model.PageInfo> GetLevelandValue()
        {
            List<M_Model.PageInfo> lt = new List<M_Model.PageInfo>();
            DataTable dt = ReturnDataTable("PageInfo");
            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    M_Model.PageInfo md = new M_Model.PageInfo();
                    md.Pagename = dt.Rows[i]["PageName"].ToString();
                    md.Pageurl = dt.Rows[i]["PageUrl"].ToString();
                    md.Pagelevel = Convert.ToInt32(dt.Rows[i]["PageLevel"]);
                    lt.Add(md);
                }
            }
            return lt;
        }

解决方案 »

  1.   

    List<T> 是一个强类型(T)的列表类。所谓强类型,是相对于弱类型的 List 类而言的,在弱类型 List 里面,你可以装入各种类型,比如同时装入3个对象,2个整数值,4个字符串……。但是强类型的 List<T> 就只能装入 T 类型,或者说,它的每个元素必然是 T 类型的。List 和 DataTable 相比,对于 Domain Driven 的开发来说,面向实体对象的编程比表结构的编程更灵活。
      

  2.   

      看这里 看这里 看这里 也就是你贴出来的代码 
    有很多ToString 和类型转换对不对...
    md.Pagename = dt.Rows[i]["PageName"].ToString();
      md.Pageurl = dt.Rows[i]["PageUrl"].ToString();
      md.Pagelevel = Convert.ToInt32(dt.Rows[i]["PageLevel"]);如果你是返回DataTable的话,那么如果要读取只有的几个值又要这样To来To去的
    ["PageName"] 这里面的字符串还很容易写错 对不对 对不对 有没有 有没有
    如果数据库某天改字段了 你就体会到什么叫蛋疼!!!!!那么现在返回的List<T> 强类型的外面使用的人就可以List<M_Model.PageInfo> listMPI=GetLevelandValue();
    然后string aa= listMPI[7].Pagename;
        int bb= listMIP[7].Pagelevel;
    强类型的哦
    不用To来To去的哦 对不对 对不对 有没有 有没有而且某天数据库修改字段了 你该一下实体类 编译的时候就会报错,然后根据报错的地方修改所以 强类型的好处
    1. 减少类型转换
    2. 运行前报错(也就是编译的时候)
    .........敲得很辛苦 给分 谢谢 ^_^