我有以下代码:
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)
Select将输入记录一一映射到输出记录 - 没有机会进行过滤。相反,您想添加另一个Where:
IEnumerable<Destination> finalDestinations =
destinations
.Select(GetAdditionalDestinationInfo)
.Where(i => i != null);
Run Code Online (Sandbox Code Playgroud)