rec*_*ive 9 c# linq ienumerable
我正在处理从第三方API返回给我的一些数组.有时这些回来了null.除了null case之外,我能够使用LINQ优雅地处理所有内容.我提出了这样的事情:
IEnumerable<Thing> procs = APICall(foo, bar);
var result = from proc in procs ?? Enumerable.Empty<Thing>()
where proc != null
select Transform(proc);
Run Code Online (Sandbox Code Playgroud)
在这里使用聚结操作员有点烦恼.我错过了处理这个问题的LINQ吗?
Red*_*dog 12
这实际上与您拥有的解决方案相同,但我使用的是扩展方法.
public static partial class EnumerableExtensions
{
public static IEnumerable<T> EmptyIfNull<T>(this IEnumerable<T> source)
{
return source ?? Enumerable.Empty<T>();
}
}
Run Code Online (Sandbox Code Playgroud)
所以我们最终得到:
IEnumerable<Thing> procs = APICall(foo, bar);
var result = from proc in procs.EmptyIfNull()
where proc != null
select Transform(proc);
Run Code Online (Sandbox Code Playgroud)