我的asp mvc应用程序中有以下模型
public class StringIntType
{
public string str { get; set; }
public int nbr { get; set; }
public string par { get; set; }
public DateTime date { get; set; }
}
我运行此查询
var sql = "select object as str , host as par from table " +
"where date > '2015-01-01' and date <'2015-01-03' option (recompile)";
并将结果映射到此列表
var myList = (List<StringIntType>)db.Database.SqlQuery<StringIntType>(sql).ToList();
问题是当我尝试在myList中进行某种排序时
int n = myList.Where(x => x.par.Contains("object")).Count();
我收到以下错误
Object reference not set to an instance of an object at x.par.Contains("object")
答案 0 :(得分:5)
因为x.par可以为null
所以你可以这样做:
int n = myList.Where(x => x.par != null && x.par.Contains("object")).Count();
答案 1 :(得分:3)
尝试将每个x.par设置为null以外的默认值,或者在调用Contains之前检查x.par是否为null。
答案 2 :(得分:2)
x
或x.par
可能为null:
int n = myList.Where(x => x != null && x.par != null && x.par.Contains("object")).Count();