/// <summary> /// 获取对象信息 /// </summary> /// <param name="o"></param> /// <returns></returns> public static List <NameValueKeyPair> GetDetailsList(object o) { List <NameValueKeyPair> list = new List <NameValueKeyPair>(); Type Ts = o.GetType(); PropertyInfo[] properts = Ts.GetProperties(); foreach (PropertyInfo item in properts) { var value = item.GetValue(o, null).ToString(); var key = item.Name; NameValueKeyPair paire = new NameValueKeyPair() { Name = key, Value = value }; list.Add(paire); } return(list); }
/// <summary> /// 获取对象信息 /// </summary> /// <param name="o"></param> /// <returns></returns> public static String GetDetailsString(object o, string RowSpliter = "\n", string eleSpliter = "->") { List <NameValueKeyPair> list = new List <NameValueKeyPair>(); Type Ts = o.GetType(); PropertyInfo[] properts = Ts.GetProperties(); foreach (PropertyInfo item in properts) { var value = item.GetValue(o, null).ToString(); var key = item.Name; NameValueKeyPair paire = new NameValueKeyPair() { Name = key, Value = value }; list.Add(paire); } string strRet = StringHelper.GetArray2Str <string>(list.Select(item => item.ToString(eleSpliter)), RowSpliter); return(strRet); }
/// <summary> /// 对比两个datatable 比较列 /// 马良 /// 2015年9月30日 /// 如果返回值数量为0 则相同 如果>0 则不同 /// </summary> /// <param name="dt1"></param> /// <param name="dt2"></param> /// <returns></returns> public static List <NameValueKeyPair> DiffTablesInCols(DataTable dt1, DataTable dt2) { List <NameValueKeyPair> listRet = new List <NameValueKeyPair>(); List <string> list1 = new List <string>(); foreach (DataColumn item in dt1.Columns) { list1.Add(item.ColumnName); } List <string> list2 = new List <string>(); foreach (DataColumn item in dt2.Columns) { list1.Add(item.ColumnName); } //将两方面的整合 List <string> list3 = list1.Union(list2).ToList(); foreach (var item in list3) { NameValueKeyPair model = new NameValueKeyPair() { Name = item, }; var exists1 = dt1.Columns.Contains(item); var exists2 = dt2.Columns.Contains(item); //都存在 if (exists1 && exists2) { if (dt1.Columns[item].DataType == dt2.Columns[item].DataType) { } else { model.Value = string.Format("类型不同,左边表中为{0},右边表中为{1}", dt1.Columns[item].DataType.ToString(), dt2.Columns[item].DataType.ToString()) ; listRet.Add(model); } } else if (!exists1) { model.Value = "左边表中没有,右边表中有"; listRet.Add(model); } else if (!exists2) { model.Value = "左边表中有,右边表中没有"; listRet.Add(model); } else { continue; } } return(listRet); }