您的位置:首页 > 其它

DataTable、实体类Model和泛型List之间的转化

2013-03-14 20:17 260 查看
1.网上例子
http://www.2cto.com/kf/201204/127785.html
Serialize() 和getSendDetailTest()

2.研发中例子

dt转化成model

View Code

public static DataTable ListToDataTable<T>(List<T> entitys)
{

//检查实体集合不能为空
if (entitys == null || entitys.Count < 1)
{
return new DataTable();
}

//取出第一个实体的所有Propertie
Type entityType = entitys[0].GetType();
PropertyInfo[] entityProperties = entityType.GetProperties();

//生成DataTable的structure
//生产代码中,应将生成的DataTable结构Cache起来,此处略
DataTable dt = new DataTable("dt");
for (int i = 0; i < entityProperties.Length; i++)
{
//dt.Columns.Add(entityProperties[i].Name, entityProperties[i].PropertyType);
dt.Columns.Add(entityProperties[i].Name);
}

//将所有entity添加到DataTable中
foreach (object entity in entitys)
{
//检查所有的的实体都为同一类型
if (entity.GetType() != entityType)
{
throw new Exception("要转换的集合元素类型不一致");
}
object[] entityValues = new object[entityProperties.Length];
for (int i = 0; i < entityProperties.Length; i++)
{
entityValues[i] = entityProperties[i].GetValue(entity, null);

}
dt.Rows.Add(entityValues);
}
return dt;
}


备注:List<>:表示可通过索引访问的对象的强类型列表。 提供用于对列表进行搜索、排序和操作的方法。

最后:感谢网友提供资料。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: