【发布时间】:2016-04-07 14:54:11
【问题描述】:
我有如下声明:
AnotherClass temp = myCustomList
.Where(x => x.bTyp != null && x.bTyp is IEnumerable<T>)
.FirstOrDefault();`
上面的声明说temp 是null,但它不应该是。
T 将MyCustomClass 的通用List 作为一个值,例如List<MyCustomClass>。
x.bTyp 的值为 typeof(IEnumerable<MyCustomClass>))。
调试器给了我myCustomList 这样的东西:
bTyp = {System.Collections.Generic.IEnumerable1[...MyCustomClass]}`
我应该如何重写temp不是null并将返回结果的语句?
【问题讨论】:
-
你能检查对象本身是否为空而不是类型吗?
-
是的,但它有 8 个元素(
List<MyCustomClass>),所以它不是null -
@willaien 实际上
x.bTyp有一个动态数据类型(它是一个属性),但它的值此时类似于typeof(IEnumerable<MyCustomClass>)) -
如果去掉
x.bTyp is IEnumerable<T>条件temp还是null?