我有一个问题数组,其中一些是空的,其中一些有一些东西。 像这样:
Questions = {null , null , object , null , object}
在这个阵列上使用linq的方法是什么?
Questions.Where(x => x.someValue == OtherValue).ToList();
这给了我错误
感谢。
答案 0 :(得分:6)
您收到错误是因为您尝试检查null对象上的属性。试试这个:
Questions.Where(x => (x != null) && (x.someValue == OtherValue)).ToList();
像这样,如果第一个条件为假,编译器将不会查看第二个条件(x.someValue == OtherValue
)。
答案 1 :(得分:3)
您可以先过滤掉空值:
Questions
.Where(x => x != null)
.Where(x => x.someValue == OtherValue)
.ToList();
答案 2 :(得分:1)
您可以使用C#6功能Null conditional operator
Questions.Where(x => x?.someValue == OtherValue).ToList();