datatable转换为list
2016-01-19 16:11
232 查看
1.datatable转换为list
C# 代码 复制
public List<T> GetList<T>(DataTable table)
{
List<T> list = new List<T>();
T t = default(T);
PropertyInfo[] propertypes = null;
string tempName = string.Empty;
foreach (DataRow row in table.Rows)
{
t = Activator.CreateInstance<T>();
propertypes = t.GetType().GetProperties();
foreach (PropertyInfo pro in propertypes)
{
tempName = pro.Name;
if (table.Columns.Contains(tempName))
{
object value = row[tempName];
if (!value.ToString().Equals(""))
{
pro.SetValue(t, value, null);
}
}
}
list.Add(t);
}
return list.Count == 0 ? null : list;
}
2.list转换为datatable
C# 代码 复制
public DataSet ConvertToDataSet<T>(IList<T> list)
{
if (list == null || list.Count <= 0)
{
return null;
}
DataSet ds = new DataSet();
DataTable dt = new DataTable(typeof(T).Name);
DataColumn column;
DataRow row;
System.Reflection.PropertyInfo[] myPropertyInfo = typeof(T).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance);
foreach (T t in list)
{
if (t == null)
{
continue;
}
row = dt.NewRow();
for (int i = 0, j = myPropertyInfo.Length; i < j; i++)
{
System.Reflection.PropertyInfo pi = myPropertyInfo[i];
string name = pi.Name;
if (dt.Columns[name] == null)
{
column = new DataColumn(name, pi.PropertyType);
dt.Columns.Add(column);
}
row[name] = pi.GetValue(t, null);
}
dt.Rows.Add(row);
}
ds.Tables.Add(dt);
return ds;
}
-----------------------------------------------------------------------------
list<Dictionary<string, string>> list = new list<Dictionary<string, string>>();
foreach(datarow dr in datatable.rows)
{
Dictionary<string, string> dct = new Dictionary<string, string>()
foreach(datacolumn dc in datatable.datacolumns)
{
dct.add(dc.columnname,dr[dc.columnname].tostring());
}
list .add(dct )
}
-----------------------
dt.Rows.Cast<DataRow>().ToDictionary(x => x[0].ToString(), x => x[1].ToString());
------------------------
dt.Rows.Cast<DataRow>().Select(x =>
{
var dict = new Dictionary<string, string>();
dict.Add("姓名", x[0].ToString());
dict.Add("学号", x[1].ToString());
return dict;
}).ToList();
C# 代码 复制
public List<T> GetList<T>(DataTable table)
{
List<T> list = new List<T>();
T t = default(T);
PropertyInfo[] propertypes = null;
string tempName = string.Empty;
foreach (DataRow row in table.Rows)
{
t = Activator.CreateInstance<T>();
propertypes = t.GetType().GetProperties();
foreach (PropertyInfo pro in propertypes)
{
tempName = pro.Name;
if (table.Columns.Contains(tempName))
{
object value = row[tempName];
if (!value.ToString().Equals(""))
{
pro.SetValue(t, value, null);
}
}
}
list.Add(t);
}
return list.Count == 0 ? null : list;
}
2.list转换为datatable
C# 代码 复制
public DataSet ConvertToDataSet<T>(IList<T> list)
{
if (list == null || list.Count <= 0)
{
return null;
}
DataSet ds = new DataSet();
DataTable dt = new DataTable(typeof(T).Name);
DataColumn column;
DataRow row;
System.Reflection.PropertyInfo[] myPropertyInfo = typeof(T).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance);
foreach (T t in list)
{
if (t == null)
{
continue;
}
row = dt.NewRow();
for (int i = 0, j = myPropertyInfo.Length; i < j; i++)
{
System.Reflection.PropertyInfo pi = myPropertyInfo[i];
string name = pi.Name;
if (dt.Columns[name] == null)
{
column = new DataColumn(name, pi.PropertyType);
dt.Columns.Add(column);
}
row[name] = pi.GetValue(t, null);
}
dt.Rows.Add(row);
}
ds.Tables.Add(dt);
return ds;
}
-----------------------------------------------------------------------------
list<Dictionary<string, string>> list = new list<Dictionary<string, string>>();
foreach(datarow dr in datatable.rows)
{
Dictionary<string, string> dct = new Dictionary<string, string>()
foreach(datacolumn dc in datatable.datacolumns)
{
dct.add(dc.columnname,dr[dc.columnname].tostring());
}
list .add(dct )
}
-----------------------
dt.Rows.Cast<DataRow>().ToDictionary(x => x[0].ToString(), x => x[1].ToString());
------------------------
dt.Rows.Cast<DataRow>().Select(x =>
{
var dict = new Dictionary<string, string>();
dict.Add("姓名", x[0].ToString());
dict.Add("学号", x[1].ToString());
return dict;
}).ToList();
相关文章推荐
- react native app离线打包准备
- springmvc+hibernate环境,事务细节
- VB.NET关于Socket分包发送的源码
- Git的使用(一)
- JAVA中Ping IP地址的两种方法
- angular 绑定动态变量
- 四种常见的 POST 提交数据方式
- 使用chrome调试前端线上代码
- WebBrowser控件使用相关
- PHP数组
- MVC和MVP的区别
- WIN32常用
- [MySQl]MySQL忘记密码
- 序列化与反序列化
- mybatis 中 foreach 迭代对象中集合
- iOS--如何去除控件上方的小蓝点
- 自学Python九 爬虫实战二(美图福利)
- java学习笔记第二章
- PHP基本语法
- smarty的简单介绍