Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }