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

C#中泛型舉例List<T>與DataTable相互轉換

 更新時間:2022年05月11日 08:07:05   作者:springsnow  
這篇文章介紹了C#中泛型舉例List<T>與DataTable相互轉換的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、 DataTable轉換到List<T>

/// <summary>   
/// TableToList   
/// </summary> 
public class TableListConverter<T> where T : class, new()
{
    public static IList<T> TableToList(DataTable dt)
    {

        IList<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))// 檢查DataTable是否包含此列
                {
                    if (!pi.CanWrite) continue;// 判斷此屬性是否有Setter

                    object value = dr[tempName];
                    if (value != DBNull.Value)
                        pi.SetValue(t, value, null);
                }
            }
            ts.Add(t);
        }

        return ts;

    }
}

應用:

// 獲得查詢結果 
DataTable dt = DbHelper.ExecuteDataTable("...");
// 把DataTable轉換為IList<UserInfo> 
IList<UserInfo> users = TableListConverter<UserInfo>.TableToList(dt);

二、 List<T>轉換到DataTable

/// <summary>   
/// ListToTable   
/// </summary>   
public class TableListConverter
{
    public static DataTable ListToTable<T>(IList<T> list) where T : class, new()
    {
        if (list == null) return null;
        Type type = typeof(T);
        DataTable dt = new DataTable();

        PropertyInfo[] properties = Array.FindAll(type.GetProperties(), p => p.CanRead);//判斷此屬性是否有Getter
        Array.ForEach(properties, prop => { dt.Columns.Add(prop.Name, prop.PropertyType); });//添加到列
        foreach (T t in list)
        {
            DataRow row = dt.NewRow();
            Array.ForEach(properties, prop =>
            {
                row[prop.Name] = prop.GetValue(t, null);
            });//添加到行
            dt.Rows.Add(row);
        }
        return dt;
    }
}

應用:

//IList<UserInfo> users 
DataTable dt =TableListConverter.ListToTable(users)

到此這篇關于C#中泛型舉例List<T>與DataTable相互轉換的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C#連接Oracle數據庫使用Oracle.ManagedDataAccess.dll

    C#連接Oracle數據庫使用Oracle.ManagedDataAccess.dll

    這篇文章主要介紹了C#使用Oracle.ManagedDataAccess.dll的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • C#?RabbitMQ的使用詳解

    C#?RabbitMQ的使用詳解

    本文主要介紹了C#?RabbitMQ的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • WPF自動隱藏的消息框的實例代碼

    WPF自動隱藏的消息框的實例代碼

    本文給大家介紹WPF自動隱藏的消息框實例代碼,當鼠標放上去將一直顯示,移開動畫繼續(xù),提供normal和error兩種邊框。非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-07-07
  • C#中判斷字符串是全角還是半角的實現代碼

    C#中判斷字符串是全角還是半角的實現代碼

    本篇文章主要是對C#中判斷字符串是全角還是半角的實現代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • C#?wpf定義ViewModelBase進行簡化屬性綁定

    C#?wpf定義ViewModelBase進行簡化屬性綁定

    綁定機制是wpf的核心,也是界面獨立的根本,尤其是使用了mvvm模式,本文主要介紹了wpf如何定義ViewModelBase進行簡化屬性綁定,需要的可以參考下
    2024-04-04
  • WPF實現帶篩選功能的DataGrid

    WPF實現帶篩選功能的DataGrid

    在默認情況下,WPF提供的DataGrid僅擁有數據展示等簡單功能,如果要實現像Excel一樣復雜的篩選過濾功能,則相對比較麻煩。本文以一個簡單的小例子,簡述如何通過WPF實現DataGrid的篩選功能,僅供學習分享使用,如有不足之處,還請指正
    2023-03-03
  • C#代碼實現PDF文檔操作類

    C#代碼實現PDF文檔操作類

    本篇文章給大家介紹使用pdf文檔操作C#代碼,本文代碼非常簡單,代碼附有注釋,需要注意的是:需要添加itextsharp.dll引用才可以正常通過編譯,感興趣的朋友可以參考下
    2015-10-10
  • C# .NET實現掃描識別圖片中的文字

    C# .NET實現掃描識別圖片中的文字

    本文以C#及VB.NET代碼為例,介紹如何掃描并讀取圖片中的文字。文中的示例代碼介紹詳細,對我們學習C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起學習一下
    2021-12-12
  • C#?BitArray(點矩陣)轉換成int和string的方法實現

    C#?BitArray(點矩陣)轉換成int和string的方法實現

    BitArray?類管理一個緊湊型的位值數組,它使用布爾值來表示,本文主要介紹了C#?BitArray(點矩陣)轉換成int和string的方法實現,具有一定的參考價值,感興趣的可以了解一下
    2022-05-05
  • 在.NET框架使用C#實現PDF文件轉為HTML格式的步驟

    在.NET框架使用C#實現PDF文件轉為HTML格式的步驟

    HTML作為一種開放標準的網頁標記語言,具有跨平臺、易于瀏覽和搜索引擎友好的特性,通過將PDF文件轉換為HTML格式,我們可以更方便地在瀏覽器中展示PDF文檔內容,本文將介紹如何在.NET框架使用C#將PDF文件轉換為HTML格式,需要的朋友可以參考下
    2025-01-01

最新評論

泗阳县| 邹平县| 涿鹿县| 晋州市| 柘荣县| 五原县| 宝丰县| 手机| 泰兴市| 内乡县| 吉木萨尔县| 东宁县| 金堂县| 翁牛特旗| 葫芦岛市| 驻马店市| 铁岭市| 岳阳县| 清镇市| 谢通门县| 米脂县| 金沙县| 韶关市| 花垣县| 屏南县| 天气| 二连浩特市| 婺源县| 商都县| 吉隆县| 蓬莱市| 鹰潭市| 健康| 灵寿县| 罗江县| 五大连池市| 蒙山县| 南和县| 江安县| 民乐县| 达拉特旗|