Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 方法组筛选器空值_C#_.net_Linq - Fatal编程技术网

C# 方法组筛选器空值

C# 方法组筛选器空值,c#,.net,linq,C#,.net,Linq,我有以下代码: IEnumerable<DestinationResult> destinations = _repository.GetDestinationData(); IEnumerable<Destination> finalDestinations = destinations.Select(GetAdditionalDestinationInfo); private Destination GetAdditionalDe

我有以下代码:

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

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

private Destination GetAdditionalDestinationInfo(DestinationResult d){ /* CODE */}
如何仍然使用方法组调用SelectGetAdditionalDestinationInfo并过滤掉可能从GetAdditionalDestinationInfo返回的null值,而不必再次调用该方法来检查where子句中的null

比如:

   IEnumerable<Destination> finalDestinations = 
        destinations.Select(GetAdditionalDestinationInfo != null)
选择将输入记录映射到输出记录,一个接一个-没有筛选的机会。相反,您希望添加另一个,其中:

选择将输入记录映射到输出记录,一个接一个-没有筛选的机会。相反,您希望添加另一个,其中:


为什么?为什么要避免匿名方法/lambda?如果在当前select之后添加where,您将在GetAdditionalDestinationInfo的结果上调用它,函数本身不会被额外调用多次枚举,而不会像ToList那样执行某些操作,因此,您可以安全地选择目的地。选择GetAdditionalDestinationInfo.Whereres=>res=无效的或者,如果GetAdditionalDestinationInfo返回空值,您是否正在寻找使用原始目标的枚举,这可以通过目标来完成。Selectd=>GetAdditionalDestinationInfo??d然后,默认值可以在GetAdditionalDestinationInfo中返回,为什么?为什么要避免匿名方法/lambda?如果在当前select之后添加where,您将在GetAdditionalDestinationInfo的结果上调用它,函数本身不会被额外调用多次枚举,而不会像ToList那样执行某些操作,因此,您可以安全地选择目的地。选择GetAdditionalDestinationInfo.Whereres=>res=无效的或者,如果GetAdditionalDestinationInfo返回空值,您是否正在寻找使用原始目标的枚举,这可以通过目标来完成。Selectd=>GetAdditionalDestinationInfo??d然后,可以在GetAdditionalDestinationInfo本身内部返回默认值
IEnumerable<Destination> finalDestinations = 
    destinations
     .Select(GetAdditionalDestinationInfo)
     .Where(i => i != null);