日期:2014-05-17  浏览次数:21163 次

在看一段源码时搞不清楚,请前辈帮大概看下,先感谢了!

      mCmd.CommandText = mSql;
            SqlDataReader mReader = mCmd.ExecuteReader();
            double _resultsum = 0;
            while (mReader.Read())
            {
                string LandLevel = mReader.GetString(0);
                IEnumerable<LandLevelItem> levels;
                levels = from p in landref.Levels   //这句是什么意思啊?
                         where p.LandLevel == LandLevel  //这句是什么意思啊?
                         select p; //这句是什么意思啊?
                if (levels.Count() > 0)
                {
                    levels.First().LevelArea = Math.Round(mReader.GetDouble(1), 2);   //这句是什么意思啊?
                }
                _resultsum += mReader.GetDouble(1);   //这句是什么意思啊?
            }
            foreach (LandLevelItem _obj in landref.Levels)   //这句是什么意思啊?
            {
                _obj.levelproportion = Math.Round(_obj.LevelArea / _resultsum, 2);   //这句是什么意思啊?
            }
            mReader.Close();

------解决方案--------------------
Linq语句啊,基本的,其实和Sql oracle差不多的那么基本的都不知道怎么解释,意思就是从landref.Levels查找p.LandLevel ==