通用的DataTable轉換為List

來源:互聯網
上載者:User

c# code

 

/// <summary><br /> /// 將DataTable轉換為list<br /> /// </summary><br /> /// <typeparam name="T"></typeparam><br /> /// <param name="dt"></param><br /> /// <returns></returns><br /> public static IList<T> DataTableToList<T>(DataTable dt)<br /> {<br /> if (dt == null)<br /> return null;<br /> IList<T> result = new List<T>();<br /> for (int j = 0; j < dt.Rows.Count; j++)<br /> {<br /> T _t = (T)Activator.CreateInstance(typeof(T));<br /> PropertyInfo[] propertys = _t.GetType().GetProperties();<br /> foreach (PropertyInfo pi in propertys)<br /> {<br /> for (int i = 0; i < dt.Columns.Count; i++)<br /> {<br /> // 屬性與欄位名稱一致的進行賦值<br /> if (pi.Name.Equals(dt.Columns[i].ColumnName))<br /> {<br /> if (dt.Rows[j][i] != DBNull.Value)<br /> {<br /> if (pi.PropertyType.ToString() == "System.Int32")<br /> {<br /> pi.SetValue(_t, Int32.Parse(dt.Rows[j][i].ToString()), null);<br /> }<br /> if (pi.PropertyType.ToString() == "System.DateTime")<br /> {<br /> pi.SetValue(_t, Convert.ToDateTime(dt.Rows[j][i].ToString()), null);<br /> }<br /> if (pi.PropertyType.ToString() == "System.String")<br /> {<br /> pi.SetValue(_t, dt.Rows[j][i].ToString(), null);<br /> }<br /> if (pi.PropertyType.ToString() == "System.Boolean")<br /> {<br /> pi.SetValue(_t, Convert.ToBoolean(dt.Rows[j][i].ToString()), null);<br /> }<br /> }<br /> else<br /> pi.SetValue(_t, null, null);<br /> break;<br /> }<br /> }<br /> }<br /> result.Add(_t);<br /> }<br /> return result;<br /> }

 

ps: 幾個月沒用csdn部落格了,依然一如既往的磋,不容易啊....

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.