- 浏览: 232613 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
net_liu:
zxptian 写道楼主能把TransferFiles也贴出来 ...
c# Socket 文件的传输 -
zxptian:
楼主能把TransferFiles也贴出来分享下吗?
c# Socket 文件的传输
List转DataTable(反射)
/// <summary>
/// 将集合类转换成DataTable
/// </summary>
/// <param name="list">集合</param>
/// <returns></returns>
public static DataTable ToDataTable(IList list)
{
DataTable result = new DataTable();
if (list.Count > 0)
{
PropertyInfo[] propertys = list[0].GetType().GetProperties();
foreach (PropertyInfo pi in propertys)
{
result.Columns.Add(pi.Name, pi.PropertyType);
}
for (int i = 0; i < list.Count; i++)
{
ArrayList tempList = new ArrayList();
foreach (PropertyInfo pi in propertys)
{
object obj = pi.GetValue(list[i], null);
tempList.Add(obj);
}
object[] array = tempList.ToArray();
result.LoadDataRow(array, true);
}
}
return result;
}
/// <summary>
/// 将泛型集合类转换成DataTable
/// </summary>
/// <typeparam name="T">集合项类型</typeparam>
/// <param name="list">集合</param>
/// <returns>数据集(表)</returns>
public static DataTable ToDataTable<T>(IList<T> list)
{
return ConvertX.ToDataTable<T>(list, null);
}
/// <summary>
/// 将泛型集合类转换成DataTable
/// </summary>
/// <typeparam name="T">集合项类型</typeparam>
/// <param name="list">集合</param>
/// <param name="propertyName">需要返回的列的列名</param>
/// <returns>数据集(表)</returns>
public static DataTable ToDataTable<T>(IList<T> list, params string[] propertyName)
{
List<string> propertyNameList = new List<string>();
if (propertyName != null)
propertyNameList.AddRange(propertyName);
DataTable result = new DataTable();
if (list.Count > 0)
{
PropertyInfo[] propertys = list[0].GetType().GetProperties();
foreach (PropertyInfo pi in propertys)
{
if (propertyNameList.Count == 0)
{
result.Columns.Add(pi.Name, pi.PropertyType);
}
else
{
if (propertyNameList.Contains(pi.Name))
result.Columns.Add(pi.Name, pi.PropertyType);
}
}
for (int i = 0; i < list.Count; i++)
{
ArrayList tempList = new ArrayList();
foreach (PropertyInfo pi in propertys)
{
if (propertyNameList.Count == 0)
{
object obj = pi.GetValue(list[i], null);
tempList.Add(obj);
}
else
{
if (propertyNameList.Contains(pi.Name))
{
object obj = pi.GetValue(list[i], null);
tempList.Add(obj);
}
}
}
object[] array = tempList.ToArray();
result.LoadDataRow(array, true);
}
}
return result;
}
发表评论
-
DataTable转泛型
2012-01-31 17:39 1275DataTable转泛型 public clas ... -
利用鼠标钩子将鼠标中键转为左键
2011-05-04 13:50 1642利用鼠标钩子将鼠标中键转为左键 鼠标 ... -
C# 命名规范
2011-04-01 13:32 1968C# 命名规范 文章分类:.net编程 ... -
VS2008 快捷键大全
2011-04-01 13:30 912VS2008 快捷键大全[转帖] 文章分类 ... -
C# 中的委托和事件
2011-04-01 13:26 1281缩略显示 C# 中的委托和事件 文章 ... -
C#Winform限制Textbox只能输入数字
2011-04-01 13:20 7479C#Winform限制Textbox ... -
C# 跳转语句(break,continue,goto,return,throw)
2011-04-01 12:38 3426C# 跳转语句(break,continue,goto,r ... -
C#窗体固定在桌面上
2010-11-19 10:25 1646[DllImport("user32.dll& ... -
cookie记住密码
2010-11-10 12:58 2303cookie记住密码: /// <summary> ... -
if-else 都输出的方法
2010-10-12 11:44 1305if-else 都输出的方法 if (new Func< ... -
反射技术
2010-09-15 17:42 919什么是反射? 反射就 ... -
发一个接口做参数的例子
2010-08-06 08:48 954发一个接口做参数的例子 回头接口 using System ... -
C#中使用正则表达式
2010-08-04 13:39 1334C#中的正则表达式包含 ... -
C#的几个技巧
2010-08-04 13:35 8461.如果可能尽量使用接 ... -
反射动态调用类成员
2010-08-04 13:30 978使用反射动态调用类成员,需要Type类的一个方法:Invoke ... -
在vs2005中发送邮件
2010-08-03 16:14 1144在vs2005中发送邮件的方法如下: ... -
XML数据排序
2010-06-30 14:20 3404根据XML数据的Index 来进行排序 方法一: ... -
程序动态升级版本
2010-06-30 10:00 996C#实现程序动态升级版本。通过反射获取本地版本,然后跟服务器中 ... -
验证码生成
2010-06-25 16:48 888namespace WebApplication1.验证码 ... -
将DataGridView 数据导出到Excel
2010-06-25 15:46 5090/// <summary> ...
相关推荐
#### `DataTable`转`List<T>` 在.NET框架中,将`DataTable`转换为`List<T>`通常涉及遍历`DataTable`的每一行,然后创建`T`类型的实例,并将每一列的值映射到相应的属性上。这个过程可以通过反射来实现,但效率较低...
public static DataTable Convert(string[] ColumnNames, List[]> Arrays) { DataTable dt = new DataTable(); foreach (string columnName in ColumnNames) { dt.Columns.Add(columnName, typeof(string)); }...
在上述代码中,我们利用了反射API获取`T`类型(这里为`Student`)的所有公共属性,并将其添加为`DataTable`的列。然后,遍历实体数组,将每个实体的属性值填充到新的`DataRow`中,最后将行添加到`DataTable`。 这个...
在C#开发中,将DataTable转换为List泛型集合是一个常见的需求,特别是在使用三层架构进行网站开发时,我们可能会从数据访问层获取一个DataTable对象,然后需要将其转换为一个强类型的List集合以便在业务逻辑层或表示...
将datatable转换为实体类LIST,运用了反射和泛型的技术
这篇文章主要讲述了如何将DataTable对象转换为List对象,使用反射机制来实现这个功能。下面是详细的知识点: 1. 使用反射机制来获取T对象的所有属性 在将DataTable对象转换为List对象时,需要使用反射机制来获取T...
利用反射和泛型 把Datatable转化为List 1
本文将详细讨论如何使用C#将DataTable、List以及相关的数据结构转换为JSON格式,以便在网络传输或者存储中使用。 首先,让我们看如何将一个DataTable转换为JSON。在.NET框架中,虽然没有内置的直接方法来实现这个...
在C#编程中,经常需要在不同的数据结构之间进行转换,例如从数据库操作中获取的`DataTable`转换为更方便操作的`List<T>`对象。`DataTable`是.NET框架中用于存储和操作数据的表格型数据结构,而`List<T>`则是一个动态...
在下面的示例代码中,我们将展示如何使用反射机制将 DataTable 转换为实体类对象实例: ```csharp private static List<T> TableToEntity(DataTable dt) where T : class, new() { Type type = typeof(T); List<T>...
通用转换方法的核心在于能够自动识别`DataSet`中`DataTable`的列类型,并将其转换为相应的`List<T>`类型,其中`T`为具体的业务实体类。以下是对代码片段的详细解析: ```csharp public List<T> ChangeDataSet...
在.NET开发中,DataTable和List是两种常用的集合类型,各有其应用场景。DataTable通常用于存储从数据库查询的结果,而List则更方便于在业务逻辑层进行数据操作。在某些情况下,需要将DataTable转换为List,以便更好...
前几天在工作中,遇到一个问题:需要将查询出来的DataTable数据源,转换成List的泛型集合(已知T类型)。第一反应,我想肯定要用到“泛型”(这不是废话吗?都说了要转换成List泛型集合了),而且还要用到“反射”...
在使用三层架构开发一个网站时,希望把DataTable对象转换为List对象,于是在网上找资料,总结一个比较方便的方法来实现——使用反射。 思路: 初始化一个List对象 获取到T所有的属性,初始化一个T对象 遍历所有属性...
这个方法通过反射获取对象类型,并创建JSON表示: ```csharp public static string ListToJson(IList<T> list, string typeName) { var settings = new JsonSerializerSettings(); settings.TypeNameHandling =...
类泛型的约束: 代码如下: public static class ToModel<T> where T : class, new() 定义委托: 代码如下:public delegate void SetString(string value); 创建委托方法: 代码如下: private static SetString ...
以下是一个使用反射将DataTable转换为List的扩展方法: ```csharp public static List<T> ToList(this DataTable dt) where T : class, new() { List<T> collection = new List(); PropertyInfo[] pInfos = ...
在标题为"Database_List.zip_databaseList"的压缩包中,我们关注的是一个通用方法,它能够实现DataTable与List对象之间的相互转换。这种转换在处理大量数据时非常有用,尤其是在进行数据操作、分析或者数据展示时。...
总结起来,通过创建一个泛型辅助类并利用反射和泛型特性,我们可以方便地将DataTable转换为List,从而提高代码的可维护性和类型安全性。这个转换方法适用于各种.NET应用程序,包括但不限于ASP.NET、Windows Forms或...
NPOL网上有返回DataTable,我自己编写了个泛型版的。