文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C#中DataTable和List互转怎么实现

2023-07-06 01:11

关注

今天小编给大家分享一下C#中DataTable和List互转怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

DataTable

DataTable 是 C# 中常用的一种数据表格类型,它类似于数据库中的表格,可以用来存储和处理数据。DataTable 中的数据可以通过行和列来访问和操作,每行代表一个数据项,每列代表一个属性。

以下是一些 DataTable 的常用属性和方法:

List

List 是 C# 中常用的一种动态数组类型,它可以用来存储任何类型的数据,可以动态增加或删除元素。List 中的元素可以通过索引来访问和操作。

以下是一些 List 的常用属性和方法:

1. DataTable转List

public class DtToList<T> where T : new()  {     /// <summary>     /// datatable to list     /// </summary>     /// <param name="dt"></param>     /// <returns></returns>     public static  List<T> ConvertToModel(DataTable dt)     {         List<T> ts = new List<T>();// 定义集合         Type type = typeof(T); // 获得此模型的类型         string tempName = "";         foreach (DataRow dr in dt.Rows)         {             T t = new T();             PropertyInfo[] propertys = t.GetType().GetProperties();// 获得此模型的公共属性             foreach (PropertyInfo pi in propertys)             {                 tempName = pi.Name;                 if (dt.Columns.Contains(tempName))                 {                     if (!pi.CanWrite) continue;                     object value = dr[tempName];                     if (value != DBNull.Value)                        pi.SetValue(t, value, null);                 }             }             ts.Add(t);         }         return ts;     }}

2. List转DataTable

/// <summary> /// list to datatable /// </summary> /// <typeparam name="T"></typeparam> /// <param name="collection"></param> /// <returns></returns> public  DataTable  ListToDt<T>(IEnumerable<T> collection) {     var props = typeof(T).GetProperties();     var dt = new DataTable();     dt.Columns.AddRange(props.Select(p => new      DataColumn(p.Name, p.PropertyType)).ToArray());     if (collection.Count() > 0)     {         for (int i = 0; i < collection.Count(); i++)         {             ArrayList tempList = new ArrayList();             foreach (PropertyInfo pi in props)             {                 object obj = pi.GetValue(collection.ElementAt(i), null);                 tempList.Add(obj);             }             object[] array = tempList.ToArray();             dt.LoadDataRow(array, true);          }      }      return dt; }

以上就是“C#中DataTable和List互转怎么实现”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯