亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#中DataTable和List互轉怎么實現

發布時間:2023-04-19 11:47:09 來源:億速云 閱讀:252 作者:iii 欄目:開發技術

今天小編給大家分享一下C#中DataTable和List互轉怎么實現的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

DataTable

DataTable 是 C# 中常用的一種數據表格類型,它類似于數據庫中的表格,可以用來存儲和處理數據。DataTable 中的數據可以通過行和列來訪問和操作,每行代表一個數據項,每列代表一個屬性。

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

  • Columns:列集合。

  • Rows:行集合。

  • NewRow():創建一個新的 DataRow 對象。

  • Load(DataReader):從一個 DataReader 對象中加載數據到 DataTable。

  • Select(filterExpression, sortExpression):根據指定的篩選條件和排序條件返回滿足條件的行集合。

  • Merge(DataTable):合并兩個 DataTable,返回一個新的 DataTable。

List

List 是 C# 中常用的一種動態數組類型,它可以用來存儲任何類型的數據,可以動態增加或刪除元素。List 中的元素可以通過索引來訪問和操作。

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

  • Count:元素數量。

  • Add(item):添加一個元素到 List 的末尾。

  • Insert(index, item):在指定的位置插入一個元素。

  • Remove(item):從 List 中刪除一個元素。

  • RemoveAt(index):刪除指定位置的元素。

  • Contains(item):判斷 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互轉怎么實現”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永顺县| 丹寨县| 且末县| 潜江市| 长宁区| 扬州市| 论坛| 福贡县| 额敏县| 普兰县| 宜兴市| 丹棱县| 广平县| 庄浪县| 二连浩特市| 道孚县| 英吉沙县| 独山县| 云和县| 盐边县| 西和县| 望谟县| 水城县| 六盘水市| 深水埗区| 黔南| 南和县| 丹寨县| 札达县| 昆明市| 瑞金市| 卢湾区| 西乡县| 潮州市| 松江区| 盐池县| 清丰县| 三河市| 遂平县| 南昌市| 波密县|