各种转换(list/tab/split)
1、List转DataTable
需要引入命名空间:using System.Reflection;
/// <summary> /// list转DataTable /// </summary> /// <typeparam name="T"></typeparam> /// <param name="list"></param> /// <param name="tableName"></param> /// <returns></returns> public static DataTable GetDataTable<T>(IEnumerable<T> list, string tableName) { DataTable dtResult = new DataTable(); dtResult.TableName = tableName; List<PropertyInfo> propertiyInfos = new List<PropertyInfo>(); //生成各列 Array.ForEach<PropertyInfo>(typeof(T).GetProperties(), p => { propertiyInfos.Add(p); dtResult.Columns.Add(p.Name, p.PropertyType); }); //生成各行 foreach (var item in list) { if (item == null) { continue; } DataRow dataRow = dtResult.NewRow(); propertiyInfos.ForEach(p => dataRow[p.Name] = p.GetValue(item, null)); dtResult.Rows.Add(dataRow); } return dtResult; }
2、DataTable 转List :
public static IList<T> ConvertTo<T>(DataTable table) { if (table == null) { return null; } List<DataRow> rows = new List<DataRow>(); foreach (DataRow row in table.Rows) { rows.Add(row); } return ConvertTo<T>(rows); }
3、Split 转List<int>
var sNumbers = "1,2,3,4,5,6"; List<int> numbers = sNumbers.Split(new char[]{','},StringSplitOptions.RemoveEmptyEntries).Select(Int32.Parse).ToList();
浙公网安备 33010602011771号