类 映射 遍历大全

                foreach (T_GL_AnalysisCalculation item in AnalysisCalculationList)
                {
                    foreach (System.Reflection.PropertyInfo p in item.GetType().GetProperties())
                    {
                        var Key = p.Name;
                        var Value = p.GetValue(item, null);


                        #region 行业最优
                        if (Key == "Reporttype" && Value.ToString() == "Max")
                        {
                            foreach (System.Reflection.PropertyInfo pYear in item.GetType().GetProperties())
                            {
                                var KeyYear = pYear.Name;
                                var ValueYear = pYear.GetValue(item, null);
                                if (KeyYear == "Year" && ValueYear.ToString() == "1")
                                {
                                    foreach (System.Reflection.PropertyInfo pYearValue in item.GetType().GetProperties())
                                    {
                                        var KeyYearName = pYearValue.Name;
                                        var KeyYearValue = pYearValue.GetValue(item, null);
                                        if (KeyYearName.Length > 5 && KeyYearName.Substring(Key.Length - 5).Replace("_", ".") == code.ToString())
                                        {
                                            entiey.ValueMax1 = Convert.ToDecimal(KeyYearValue);
                                        }
                                    }
                                }
                                if (KeyYear == "Year" && ValueYear.ToString() == "3")
                                {
                                    foreach (System.Reflection.PropertyInfo pYearValue in item.GetType().GetProperties())
                                    {
                                        var KeyYearName = pYearValue.Name;
                                        var KeyYearValue = pYearValue.GetValue(item, null);
                                        if (KeyYearName.Length > 5 && KeyYearName.Substring(Key.Length - 5).Replace("_", ".") == code.ToString())
                                        {
                                            entiey.ValueMax3 = Convert.ToDecimal(KeyYearValue);
                                        }
                                    }
                                }
                                if (KeyYear == "Year" && ValueYear.ToString() == "5")
                                {
                                    foreach (System.Reflection.PropertyInfo pYearValue in item.GetType().GetProperties())
                                    {
                                        var KeyYearName = pYearValue.Name;
                                        var KeyYearValue = pYearValue.GetValue(item, null);
                                        if (KeyYearName.Length > 5 && KeyYearName.Substring(Key.Length - 5).Replace("_", ".") == code.ToString())
                                        {
                                            entiey.ValueMax5 = Convert.ToDecimal(KeyYearValue);
                                        }
                                    }
                                }
                                if (KeyYear == "Year" && ValueYear.ToString() == "10")
                                {
                                    foreach (System.Reflection.PropertyInfo pYearValue in item.GetType().GetProperties())
                                    {
                                        var KeyYearName = pYearValue.Name;
                                        var KeyYearValue = pYearValue.GetValue(item, null);
                                        if (KeyYearName.Length > 5 && KeyYearName.Substring(Key.Length - 5).Replace("_", ".") == code.ToString())
                                        {
                                            entiey.ValueMax10 = Convert.ToDecimal(KeyYearValue);
                                        }
                                    }
                                }
                            }
                        }

                        #endregion

                        #region 行业平均
                        if (Key == "Reporttype" && Value.ToString() == "Average")
                        {
                            foreach (System.Reflection.PropertyInfo pYear in item.GetType().GetProperties())
                            {
                                var KeyYear = pYear.Name;
                                var ValueYear = pYear.GetValue(item, null);
                                if (KeyYear == "Year" && ValueYear.ToString() == "1")
                                {
                                    foreach (System.Reflection.PropertyInfo pYearValue in item.GetType().GetProperties())
                                    {
                                        var KeyYearName = pYearValue.Name;
                                        var KeyYearValue = pYearValue.GetValue(item, null);
                                        if (KeyYearName.Length > 5 && KeyYearName.Substring(Key.Length - 5).Replace("_", ".") == code.ToString())
                                        {
                                            entiey.ValueAverage1 = Convert.ToDecimal(KeyYearValue);
                                        }
                                    }
                                }
                                if (KeyYear == "Year" && ValueYear.ToString() == "3")
                                {
                                    foreach (System.Reflection.PropertyInfo pYearValue in item.GetType().GetProperties())
                                    {
                                        var KeyYearName = pYearValue.Name;
                                        var KeyYearValue = pYearValue.GetValue(item, null);
                                        if (KeyYearName.Length > 5 && KeyYearName.Substring(Key.Length - 5).Replace("_", ".") == code.ToString())
                                        {
                                            entiey.ValueAverage3 = Convert.ToDecimal(KeyYearValue);
                                        }
                                    }
                                }
                                if (KeyYear == "Year" && ValueYear.ToString() == "5")
                                {
                                    foreach (System.Reflection.PropertyInfo pYearValue in item.GetType().GetProperties())
                                    {
                                        var KeyYearName = pYearValue.Name;
                                        var KeyYearValue = pYearValue.GetValue(item, null);
                                        if (KeyYearName.Length > 5 && KeyYearName.Substring(Key.Length - 5).Replace("_", ".") == code.ToString())
                                        {
                                            entiey.ValueAverage5 = Convert.ToDecimal(KeyYearValue);
                                        }
                                    }
                                }
                                if (KeyYear == "Year" && ValueYear.ToString() == "10")
                                {
                                    foreach (System.Reflection.PropertyInfo pYearValue in item.GetType().GetProperties())
                                    {
                                        var KeyYearName = pYearValue.Name;
                                        var KeyYearValue = pYearValue.GetValue(item, null);
                                        if (KeyYearName.Length > 5 && KeyYearName.Substring(Key.Length - 5).Replace("_", ".") == code.ToString())
                                        {
                                            entiey.ValueAverage10 = Convert.ToDecimal(KeyYearValue);
                                        }
                                    }
                                }
                            }
                        }


                        #endregion

                        #region 行业最差
                        if (Key == "Reporttype" && Value.ToString() == "Min")
                        {
                            foreach (System.Reflection.PropertyInfo pYear in item.GetType().GetProperties())
                            {
                                var KeyYear = pYear.Name;
                                var ValueYear = pYear.GetValue(item, null);
                                if (KeyYear == "Year" && ValueYear.ToString() == "1")
                                {
                                    foreach (System.Reflection.PropertyInfo pYearValue in item.GetType().GetProperties())
                                    {
                                        var KeyYearName = pYearValue.Name;
                                        var KeyYearValue = pYearValue.GetValue(item, null);
                                        if (KeyYearName.Length > 5 && KeyYearName.Substring(Key.Length - 5).Replace("_", ".") == code.ToString())
                                        {
                                            entiey.ValueMin1 = Convert.ToDecimal(KeyYearValue);
                                        }
                                    }
                                }
                                if (KeyYear == "Year" && ValueYear.ToString() == "3")
                                {
                                    foreach (System.Reflection.PropertyInfo pYearValue in item.GetType().GetProperties())
                                    {
                                        var KeyYearName = pYearValue.Name;
                                        var KeyYearValue = pYearValue.GetValue(item, null);
                                        if (KeyYearName.Length > 5 && KeyYearName.Substring(Key.Length - 5).Replace("_", ".") == code.ToString())
                                        {
                                            entiey.ValueMin3 = Convert.ToDecimal(KeyYearValue);
                                        }
                                    }
                                }
                                if (KeyYear == "Year" && ValueYear.ToString() == "5")
                                {
                                    foreach (System.Reflection.PropertyInfo pYearValue in item.GetType().GetProperties())
                                    {
                                        var KeyYearName = pYearValue.Name;
                                        var KeyYearValue = pYearValue.GetValue(item, null);
                                        if (KeyYearName.Length > 5 && KeyYearName.Substring(Key.Length - 5).Replace("_", ".") == code.ToString())
                                        {
                                            entiey.ValueMin5 = Convert.ToDecimal(KeyYearValue);
                                        }
                                    }
                                }
                                if (KeyYear == "Year" && ValueYear.ToString() == "10")
                                {
                                    foreach (System.Reflection.PropertyInfo pYearValue in item.GetType().GetProperties())
                                    {
                                        var KeyYearName = pYearValue.Name;
                                        var KeyYearValue = pYearValue.GetValue(item, null);
                                        if (KeyYearName.Length > 5 && KeyYearName.Substring(Key.Length - 5).Replace("_", ".") == code.ToString())
                                        {
                                            entiey.ValueMin10 = Convert.ToDecimal(KeyYearValue);
                                        }
                                    }
                                }
                            }
                        }


                        #endregion

                    }
                }

 

 

 


                foreach (System.Reflection.PropertyInfo p in entiey.GetType().GetProperties())
                {
                    var Key = p.Name;
                    var Value = p.GetValue(entiey, null);
                    if (Key.Substring(0, 1) == "Q")
                    {


                        foreach (var item in AnalysisCalculationQAllList)
                        {
                            if (item.Reporttype == quarter + Key.Substring(1, Key.Length - 1))
                            {
                                foreach (System.Reflection.PropertyInfo I in item.GetType().GetProperties())
                                {
                                    var itemKey = I.Name;
                                    var itemValue = I.GetValue(item, null);
                                    if (code.ToString() == itemKey.Replace("_", "."))
                                    {
                                        p.SetValue(entiey, itemValue, null);
                                    }
                                }
                            }
                        }
                    }
                }

转载于:https://www.cnblogs.com/520cc/p/4081642.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值