我看到以下代码和LINQ查询抛出2个稍微不同的间歇性NullReferenceExceptions
。
我怀疑我需要在查询中添加一些null检查,但是.Select
是否可以返回null?还是我应该在下面的示例中对自己的选择进行.ToList()
处理?
var indexes = messages.Select(m => m.Index);
var undocumentedType1Messages = Type1Messages.Where(m => !indexes.Contains(m.Index)).ToList();
var undocumentedType2Messages = Type2Messages.Where(m => !indexes.Contains(m.Index)).ToList();
var undocumentedType3Messages = Type3Messages.Where(m => !indexes.Contains(m.Index)).ToList();
var undocumentedType4Messages = Type4Messages.Where(m => !indexes.Contains(m.Index)).ToList();
堆栈跟踪:
System.NullReferenceException:对象引用未设置为实例 一个对象。 在System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
System.NullReferenceException:对象引用未设置为实例 一个对象。在System.Linq.Enumerable.WhereListIterator`1.MoveNext()