各种转换(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();

 

posted @ 2022-02-11 10:17  znyzny  阅读(81)  评论(0)    收藏  举报