C#list count返回对象null

时间:2015-04-22 06:59:36

标签: c# asp.net asp.net-mvc

我的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")

3 个答案:

答案 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)

xx.par可能为null:

int n = myList.Where(x => x != null &&  x.par != null && x.par.Contains("object")).Count();
相关问题