我在此LINQ查询中收到异常的“ NullReferenceException未由用户代码处理”错误:
List<UDIDInfo> d2Android = d2.Where(x.DeviceOS == (byte)DeviceOS.Android).ToList();
我继续并添加了一个空检查,仍然出现错误
List<UDIDInfo> d2Android = d2.Where(x => x.DeviceOS != null && x.DeviceOS == (byte)DeviceOS.Android).ToList();
请注意,
(byte)DeviceOS.Android
和d2
都不为空编辑(解决方案):
List<UDIDInfo> d2Android = d2.Where(x => x != null && x.DeviceOS != null && x.DeviceOS == (byte)DeviceOS.Android).ToList();
最佳答案
如果x
为空怎么办?也就是说,可枚举的d2
包含一个null
项。
尝试以下方法。您不应获得任何null引用异常。
List<UDIDInfo> d2Android = d2
.Where(x => x != null)
.Where(x => x.DeviceOS != null)
.Where(x => x.DeviceOS == (byte)DeviceOS.Android)
.ToList();