集合已修改;可能无法执行枚举操作; 索引超出范围;未将对象引用设置到对象的实例

【1】集合已修改;可能无法执行枚举操作

foreach (var city in list)
            {
                if (city.CITYCODE.Contains("410706"))
                {
                    list.Remove(city);
                }
            }

foreach语句是对枚举数的包装,它只允许从集合中读取,不允许写入集合。

也就是,不能在foreach里遍历的时侯把它的元素进行删除或增加的操作的

[C#]集合已修改;可能无法执行枚举操作

 

【2】其他信息: 索引超出范围。必须为非负值并小于集合大小。

for (var i=0;i<118;i++)
            {
                if (list[i].CITYCODE.Contains("410706"))//,410705,410522
                {
                    list.RemoveAt(i);
                }
            }

            for (var i=0;i< list.Count(); i++)
            {
                if (list[i].CITYCODE.Contains("410706,410705,410522"))//
                {
                    list.RemoveAt(i);
                }
            }

    【3】其他信息: 未将对象引用设置到对象的实例。

            var result = from a in list
                             join c in airQuality on a.CITYCODE equals c.CITYCODE 
                             //orderby a.AQI ascending, a.CITYCODE ascending
                             into joinEmpDept
                             from da in joinEmpDept.DefaultIfEmpty()
                             select new
                             {
                                 da.PM10,
                                 da.PM25,
                                 da.CO,
                                 da.NO2,
                                 da.SO2,
                                 da.O3,
                                 da.AQI,
                                 da.AIRLEVEL,
                                 a.CITY
                             };

没有做null值的判断

                var result = from a in list
                             join c in airQuality on a.CITYCODE equals c.CITYCODE 
                             //orderby a.AQI ascending, a.CITYCODE ascending
                             into joinEmpDept
                             from da in joinEmpDept.DefaultIfEmpty()
                             select new
                             {
                                 PM10=da==null? -999 :da.PM10,
                                 PM25= da == null ? -999 : da.PM25,
                                 CO= da == null ? -999 : da.CO,
                                 NO2= da == null ? -999 : da.NO2,
                                 SO2= da == null ? -999 : da.SO2,
                                 O3= da == null ? -999 : da.O3,
                                 AQI= da == null ? -999 : da.AQI,
                                 AIRLEVEL=da.AIRLEVEL,
                                 a.CITY
                             };

集合已修改;可能无法执行枚举操作; 索引超出范围;未将对象引用设置到对象的实例

 

没有解决