c# list<> datatable
时间: 2023-12-09 18:04:16 浏览: 42
C#中List<>和DataTable都是用于存储数据的集合类型,但是它们的实现方式和用途有所不同。
List<>通常用于存储一组相同类型的对象,可以通过索引访问其中的元素,也可以使用LINQ进行筛选和排序等操作。List<>是一个泛型类,需要指定存储的元素类型,比如List<int>表示存储整数类型的元素。
DataTable则是用于存储表格数据的类型,类似于关系型数据库中的表格,包含多个列和行,每个单元格存储一个数据元素。DataTable提供了很多方法来对表格数据进行操作,比如添加/删除行列、查询数据、排序、筛选等。DataTable还支持数据绑定,可以方便地在UI界面中显示表格数据。
如果需要存储一个简单的数据列表,可以使用List<>;如果需要存储表格数据并进行复杂的操作,可以使用DataTable。在实际开发中,可以根据需求选择使用不同的集合类型。
相关问题
C# List<T> 转DataTable
可以使用以下代码将 C# List<T> 转换成 DataTable:
```csharp
public static DataTable ToDataTable<T>(List<T> items)
{
DataTable dataTable = new DataTable(typeof(T).Name);
PropertyInfo[] props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo prop in props)
{
dataTable.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
}
foreach (T item in items)
{
DataRow row = dataTable.NewRow();
foreach (PropertyInfo prop in props)
{
row[prop.Name] = prop.GetValue(item, null) ?? DBNull.Value;
}
dataTable.Rows.Add(row);
}
return dataTable;
}
```
使用方法:
```csharp
List<MyClass> myList = new List<MyClass>();
// 填充 myList
DataTable dataTable = ToDataTable(myList);
```
c# datatable 写入 list
可以使用以下代码将 DataTable 转换为 List:
```csharp
public static List<T> ConvertDataTableToList<T>(DataTable dt)
{
List<T> data = new List<T>();
foreach (DataRow row in dt.Rows)
{
T item = GetItem<T>(row);
data.Add(item);
}
return data;
}
private static T GetItem<T>(DataRow dr)
{
Type temp = typeof(T);
T obj = Activator.CreateInstance<T>();
foreach (DataColumn column in dr.Table.Columns)
{
foreach (PropertyInfo pro in temp.GetProperties())
{
if (pro.Name == column.ColumnName)
pro.SetValue(obj, dr[column.ColumnName], null);
else
continue;
}
}
return obj;
}
```
调用方法:
```csharp
List<MyClass> list = ConvertDataTableToList<MyClass>(dataTable);
```
其中,MyClass 是你自己定义的类,包含与 DataTable 中列名相同的属性。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)