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

解决方案 »

  1.   

          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; //这句是什么意思啊?
                    //这三行是一句,表示从landref.Levels中将其LandLevel属性等于LandLevel的元素提取出来,放在levels集合中。
                    if (levels.Count() > 0)
                    {
                        levels.First().LevelArea = Math.Round(mReader.GetDouble(1), 2);   //这句是什么意思啊?
                        //取levels这个集合中的第一条,让它的LevelArea=reader的第一列四舍五入取2位
                    }
                    _resultsum += mReader.GetDouble(1);   //这句是什么意思啊?
                }
                foreach (LandLevelItem _obj in landref.Levels)   //这句是什么意思啊? // foreach 就是遍历
                {
                    _obj.levelproportion = Math.Round(_obj.LevelArea / _resultsum, 2);   //这句是什么意思啊? //同上
                }
                mReader.Close();
      

  2.   

    都是基本语法。
    比如
    int[] mums = { 1, 2, 3, 4, 5, 6 };
    IEnumerable<num> 偶数 = form x in nums where x % 2 == 0 select x;
    Console.WriteLine("第一个偶数: {0}", 偶数.First());
    Console.WriteLine("所有的偶数:");
    foreach (int i in 偶数)
        Console.WriteLine(i);
    新建一个控制台程序,运行上面的代码
    如果这个理解了,那么你那个程序就理解了。