将一个对象相同的属性(不区分大小写)赋值给一个新对象 DataTable的一个简单的扩展
2018-04-22 02:46
513 查看
将一个对象相同的属性(不区分大小写)赋值给一个新对象
1 public static T Mapper<S, T>(S source) 2 { 3 T t = Activator.CreateInstance<T>(); 4 try 5 { 6 var s_type = source.GetType(); 7 var t_type = typeof(T); 8 foreach (PropertyInfo sp in s_type.GetProperties()) 9 { 10 foreach (PropertyInfo dp in t_type.GetProperties()) 11 { 12 if (dp.Name.ToUpper() == sp.Name.ToUpper()) 13 { 14 dp.SetValue(t, sp.GetValue(source, null), null); 15 } 16 } 17 } 18 } 19 catch (Exception ex) 20 { 21 throw ex; 22 } 23 return t; 24 }
DataTable的一个简单的扩展
我们在调试代码的时候经常遇到DataTable的数据类型错误,这个类可以帮助我们很快查看DataTable的结构信息.
1 /// <summary> 2 /// DataTable扩展类 3 /// </summary> 4 public static class DataTableExtensions 5 { 6 /// <summary> 7 /// 显示DataTable的结构信息 8 /// </summary> 9 /// <param name="table">datatable</param> 10 public static void LoadDataTableStructure(this DataTable table) 11 { 12 if (table == null) 13 { 14 System.Diagnostics.Debug.WriteLine("datatable is null."); 15 } 16 17 StringBuilder structureInfo = new StringBuilder(); 18 string colName = string.Empty; 19 string colType = string.Empty; 20 21 structureInfo.AppendLine("============================Begin============================="); 22 structureInfo.AppendLine("TableName: " + table.TableName); 23 structureInfo.AppendLine(string.Format("{0,-20}{1}", "ColumnName", "DataType")); 24 25 foreach (DataColumn col in table.Columns) 26 { 27 colName = col.ColumnName; 28 colType = col.DataType.ToString(); 29 structureInfo.AppendLine(string.Format("{0,-20}{1}", colName, colType)); 30 } 31 32 structureInfo.AppendLine("=============================End=============================="); 33 System.Diagnostics.Debug.WriteLine(structureInfo.ToString()); 34 } 35 }
相关文章推荐
- 将一个对象相同的属性(不区分大小写)赋值给一个新对象
- 用反射将DataTable的一行DataRow构建为一个自定义类的对象 - 给对象的属性赋值
- WPF 之 XAML语法,对象属性赋值(简单赋值、TypeConverter 标签属性与对象属性映射、标记扩展),引用外部库
- DozerBeanMapper对象之间相同属性名赋值
- 【华为OJ】1. 输入字符串和一个字符,找到相同字符个数,不区分大小写!!!
- Javascript面试题:如何给一个Javascript的对象属性赋值?如何取得属性值?
- 简单的面向对象思想,写一个传奇人物的属性
- mybatis插入一个对象后获取表中自增的主键Id并且传入到插入的的对象中,方便将对象中其他属性赋值给其他以前表主键Id作为非空字段的表
- 将一个对象的属性值赋给另一个对象的相同的属性 这两个对象必须都符合javaBean的标准
- 一个类把属性值赋值给另一个类的相同的属性
- Java 对象之间相同属性的赋值
- Wpf 使用标签扩展为对象的属性赋值。
- mybatis插入一个对象后获取表中自增的主键Id并且传入到插入的的对象中,方便将对象中其他属性赋值给其他以前表主键Id作为非空字段的表
- 求一个字符串中最长的相同字符字串 不区分大小写
- C# PropertyInfo 将一个对象赋值到另一个相同名称的对象
- 不同实体类相同属性赋值,复制对象里的值到另一个对象里的工具类
- DozerBeanMapper对象之间相同属性名赋值
- JavaScript中记一个关于对象属性赋值的小问题
- Javascript面试题:如何给一个Javascript的对象属性赋值?如何取得属性值?
- 对不同对象的相同属性进行赋值,被改变的是des