我有类型为T的对象的IQueryable列表,我想将其转换为K类型的对象
List<K> tranformedList = originalList.Select(x => transform(x)).ToList();
Run Code Online (Sandbox Code Playgroud)
如果转换函数不能转换对象,则返回null.如果我想过滤掉null元素,我可以调用它
List<K> tranformedList = originalList.Select(x => transform(x))
.Where(y => y != default(K))
.ToList();
Run Code Online (Sandbox Code Playgroud)
或者在LINQ中调用Select时是否还有其他过滤掉null元素的方法?
Nat*_*n W 73
你不能只做这样的事情:
List<K> tranformedList = originalList.Select(x => tranform(x))
.Where(y => y != null) //Check for nulls
.ToList();
Run Code Online (Sandbox Code Playgroud)
sti*_*tty 48
关于什么
List<K> tranformedList = originalList
.Select(x => transform(x))
.OfType<K>()
.ToList()
Run Code Online (Sandbox Code Playgroud)
注意拆箱同时摆脱空值(特别是当K是一个结构时)
当BI .Where(y => y != null)
是int时,David BI不相信你的代码有效!如果K是int,你将无法获得编译代码!