您好,登錄后才能下訂單哦!
今天小編給大家分享一下C#中DataTable和List互轉怎么實現的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
DataTable 是 C# 中常用的一種數據表格類型,它類似于數據庫中的表格,可以用來存儲和處理數據。DataTable 中的數據可以通過行和列來訪問和操作,每行代表一個數據項,每列代表一個屬性。
以下是一些 DataTable 的常用屬性和方法:
Columns:列集合。
Rows:行集合。
NewRow():創建一個新的 DataRow 對象。
Load(DataReader):從一個 DataReader 對象中加載數據到 DataTable。
Select(filterExpression, sortExpression):根據指定的篩選條件和排序條件返回滿足條件的行集合。
Merge(DataTable):合并兩個 DataTable,返回一個新的 DataTable。
List 是 C# 中常用的一種動態數組類型,它可以用來存儲任何類型的數據,可以動態增加或刪除元素。List 中的元素可以通過索引來訪問和操作。
以下是一些 List 的常用屬性和方法:
Count:元素數量。
Add(item):添加一個元素到 List 的末尾。
Insert(index, item):在指定的位置插入一個元素。
Remove(item):從 List 中刪除一個元素。
RemoveAt(index):刪除指定位置的元素。
Contains(item):判斷 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; } }
/// <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互轉怎么實現”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。