【1】集合已修改;可能无法执行枚举操作
foreach (var city in list)
{
if (city.CITYCODE.Contains("410706"))
{
list.Remove(city);
}
}
foreach语句是对枚举数的包装,它只允许从集合中读取,不允许写入集合。
也就是,不能在foreach里遍历的时侯把它的元素进行删除或增加的操作的
【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
};
没有解决