LINQ中的空检查器

时间:2018-01-05 18:38:53

标签: c# linq

我有resDataCourses listItem和Error属性的对象。我检查了所有Courses列表项Error属性,所有属性都是null

但是,当我签入以下内容时,它会返回true

我想知道我错过了什么?

if(resData.Courses.Select(x => x.Error != null && x.Error.Length > 0).Count() > 0)
{
   Console.WriteLine("Error");
}

1 个答案:

答案 0 :(得分:5)

这是因为您使用的是Select,您正在预测您的收藏,而不是应用条件,您应该使用Where代替,或使用Count的重载方法:

if(resData.Courses.Count(x => x.Error != null && x.Error.Length > 0) > 0)

正如@Chris指出的那样,如果你使用Any来避免枚举整个列表,那会更好:

if(resData.Courses.Any(x => x.Error != null && x.Error.Length > 0))