将List转换为C#.net中的List
发布时间:2020-12-16 01:45:20 所属栏目:百科 来源:网络整理
导读:我有一个像UserEntity这样的类,如下所示 [Serializable][XmlRootAttribute(ElementName = "UsersEntity",IsNullable = false)]public class UserEntity{ [XmlElement(DataType="string",ElementName="UsersID")] public int UsersID { get; set; } [XmlEleme
我有一个像UserEntity这样的类,如下所示
[Serializable] [XmlRootAttribute(ElementName = "UsersEntity",IsNullable = false)] public class UserEntity { [XmlElement(DataType="string",ElementName="UsersID")] public int UsersID { get; set; } [XmlElement(DataType = "string",ElementName = "UserName")] public string UserName { get; set; } [XmlElement(DataType = "string",ElementName = "Password")] public string Password { get; set; } } 然后我从Db表填充了一个记录作为数据集.然后没有foreach循环我将该数据集转换为List,如下所示 Dataset _ods= new Dataset(); //create a list of UerEntity class List<UserEntity> lstUsers=new List<UserEntity>(); // populate record as dataset from DB table _ods = populateEmpData(); // convert List<DataRow> from Dataset withou Foreach Loop List<DataRow> lstRows = _ods.Tables[0].AsEnumerable().ToList(); 现在我想通过使用ConvertAll方法将lstRows转换为List,如下所示: lstUsers=lstRows.ToList().ConvertAll(new Converter(ent=>ent)); 但它不起作用.我怎样才能做到这一点? 解决方法
您需要手动将DataRow字段映射到UserEntity类的字段.这样的东西应该工作(未经测试):
lstUsers = (from dr in lstRows select new UserEntity { UsersId = dr.Field<int>("user_id"),UserName = dr.Field<string>("user_name"),Password = dr.Field<string>("password") }).ToList(); 而且,实际上,您不需要lstRows,也不需要将lstUsers初始化为空列表: var lstUsers = (from dr in _ods.Tables[0].AsEnumerable() select new UserEntity { UsersId = dr.Field<int>("user_id"),Password = dr.Field<string>("password") }).ToList(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |