方法组过滤空值

Hél*_*ves 1 .net c# linq

我有以下代码:

IEnumerable<DestinationResult> destinations =
        _repository.GetDestinationData();

IEnumerable<Destination> finalDestinations = 
        destinations.Select(GetAdditionalDestinationInfo);

private Destination GetAdditionalDestinationInfo(DestinationResult d){ /* CODE */}
Run Code Online (Sandbox Code Playgroud)

如何仍然使用方法组调用 (Select(GetAdditionalDestinationInfo)) 并过滤掉可能从 GetAdditionalDestinationInfo 返回的 null 值(无需再次调用该方法来检查 where 子句中的 null 值)。

就像是:

   IEnumerable<Destination> finalDestinations = 
        destinations.Select(GetAdditionalDestinationInfo != null)
Run Code Online (Sandbox Code Playgroud)

Lua*_*aan 5

Select将输入记录一一映射到输出记录 - 没有机会进行过滤。相反,您想添加另一个Where

IEnumerable<Destination> finalDestinations = 
    destinations
     .Select(GetAdditionalDestinationInfo)
     .Where(i => i != null);
Run Code Online (Sandbox Code Playgroud)