我试图修复这些linq语句,以便在模型为null时不会出错。处理模型中的空值传递到控制器
例如: model.FilterSet.Dispositions
可能为空。而model.FilterSet.GenderFilters
可能不会。
我的当前linq语句给出了错误,如果有一个null,所以我试图在DispositionFilters linq中添加.Where(item => item != null)
,但它给了我一个错误,说这总是正确的。
这里是我的代码:
var filters = new RespondentCSVFilters
{
CSVFilters = new CSVFilters
{
DispositionFilters = model.FilterSet.Dispositions.Where(item=>item != null).ToList().ConvertAll(item => (int)((RespondentStatus)Enum.Parse(typeof(RespondentStatus), item.ToString()))),
EthnicitiesFilters = model.FilterSet.Ethnicities.ConvertAll(item => (int)((Ethnicity)Enum.Parse(typeof(Ethnicity), item.ToString()))),
GenderFilters = model.FilterSet.Genders.ConvertAll(item => (int)((Gender)Enum.Parse(typeof(Gender), item.ToString()))),
SourcesFilters = model.FilterSet.Sources.ConvertAll(item => (int)((RespondentSource)Enum.Parse(typeof(RespondentSource), item.ToString()))),
}
};
我不知道如何进行更改,以处理空值。
您的意思是模型的'model.FilterSet.Dispositions'字段可以是'null',或者'model.FilterSet.Dispositions'内的其中一个项目可以是'null'? – dasblinkenlight
模型的字段可能为null,例如model.FilterSet.Dispositions可能完全为空。 – allencoded
我会分手以提高可读性 –