最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中DataTable和List互轉(zhuǎn)的示例代碼

 更新時間:2023年04月12日 10:27:12   作者:劃]破  
很多場景下,我們需要將List轉(zhuǎn)換成為DataTable,本文主要介紹了C#中DataTable和List互轉(zhuǎn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

DataTable

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

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

  • Columns:列集合。
  • Rows:行集合。
  • NewRow():創(chuàng)建一個新的 DataRow 對象。
  • Load(DataReader):從一個 DataReader 對象中加載數(shù)據(jù)到 DataTable。
  • Select(filterExpression, sortExpression):根據(jù)指定的篩選條件和排序條件返回滿足條件的行集合。
  • Merge(DataTable):合并兩個 DataTable,返回一個新的 DataTable。

List

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

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

  • Count:元素數(shù)量。
  • Add(item):添加一個元素到 List 的末尾。
  • Insert(index, item):在指定的位置插入一個元素。
  • Remove(item):從 List 中刪除一個元素。
  • RemoveAt(index):刪除指定位置的元素。
  • Contains(item):判斷 List 中是否包含指定的元素。

1. DataTable轉(zhuǎn)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轉(zhuǎn)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;
 }

到此這篇關(guān)于C#中DataTable和List互轉(zhuǎn)的示例代碼的文章就介紹到這了,更多相關(guān)C# DataTable和List互轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c# 多線程處理多個數(shù)據(jù)的方法

    c# 多線程處理多個數(shù)據(jù)的方法

    這篇文章主要介紹了c# 多線程處理多個數(shù)據(jù)的方法,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#?獲取本機IP地址(IPv4和IPv6)

    C#?獲取本機IP地址(IPv4和IPv6)

    本文主要介紹了C#?獲取本機IP地址(IPv4和IPv6),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • C#獲取文件夾及文件的大小與占用空間的方法

    C#獲取文件夾及文件的大小與占用空間的方法

    這篇文章主要介紹了C#獲取文件夾及文件的大小與占用空間的方法,需要的朋友可以參考下
    2014-07-07
  • C#中實現(xiàn)PriorityQueue優(yōu)先級隊列的代碼

    C#中實現(xiàn)PriorityQueue優(yōu)先級隊列的代碼

    這篇文章主要介紹了C#中PriorityQueue優(yōu)先級隊列的實現(xiàn),構(gòu)造初始化這部分主要介紹關(guān)鍵的字段和方法,比較器的初始化以及堆的初始化,需要的朋友可以參考下
    2021-12-12
  • C#在MySQL大量數(shù)據(jù)下的高效讀取、寫入詳解

    C#在MySQL大量數(shù)據(jù)下的高效讀取、寫入詳解

    最近由于工作的原因,經(jīng)常需要對海量數(shù)據(jù)進行處理,做的數(shù)據(jù)爬蟲相關(guān),動輒千萬級別的數(shù)據(jù),單表幾十個G 都是都是家常便飯。 那么主要的開發(fā)語言是C#,數(shù)據(jù)庫使用的是MySQL。下面通過這篇文章我們來一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • C#中File靜態(tài)類對文件的讀取寫入

    C#中File靜態(tài)類對文件的讀取寫入

    這篇文章介紹了C#中File靜態(tài)類對文件的讀取寫入,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#實現(xiàn)操作MySql數(shù)據(jù)層類MysqlHelper實例

    C#實現(xiàn)操作MySql數(shù)據(jù)層類MysqlHelper實例

    這篇文章主要介紹了C#實現(xiàn)操作MySql數(shù)據(jù)層類MysqlHelper,實例分析了C#操作MySQL的常用技巧,并將其封裝入一個類中以方便調(diào)用,需要的朋友可以參考下
    2015-04-04
  • C#和lua相互調(diào)用的方法教程

    C#和lua相互調(diào)用的方法教程

    lua是一種腳本語言,可以方便的移植到各種宿主語言中,并且可以支持熱更新,在游戲開發(fā)中也能當(dāng)做主要的語言來編寫游戲的邏輯,所以這篇文章主要給大家介紹了關(guān)于C#和lua相互調(diào)用的方法教程,需要的朋友可以參考下。
    2017-11-11
  • 使用C#實現(xiàn)阿拉伯?dāng)?shù)字到大寫中文的轉(zhuǎn)換

    使用C#實現(xiàn)阿拉伯?dāng)?shù)字到大寫中文的轉(zhuǎn)換

    這篇文章主要介紹了C#實現(xiàn)阿拉伯?dāng)?shù)字轉(zhuǎn)為大寫中文的實現(xiàn)代碼,需要的朋友可以參考下
    2007-03-03
  • 淺談C# AOP的簡單實現(xiàn)

    淺談C# AOP的簡單實現(xiàn)

    這篇文章主要介紹了淺談C# AOP的簡單實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07

最新評論

弋阳县| 孝昌县| 阿拉善左旗| 若尔盖县| 焉耆| 蛟河市| 无极县| 仁化县| 铁岭市| 民权县| 苏州市| 鄂托克旗| 比如县| 德州市| 和硕县| 商水县| 白沙| 罗山县| 韶山市| 洪洞县| 河池市| 报价| 淅川县| 无锡市| 通山县| 扶沟县| 福建省| 海伦市| 鄂温| 托克托县| 辽阳市| 班玛县| 视频| 儋州市| 河源市| 阿克陶县| 洮南市| 鄯善县| 临朐县| 大姚县| 江西省|