Observable.Do 等价于 Enumerable [重复]

Posted

技术标签:

【中文标题】Observable.Do 等价于 Enumerable [重复]【英文标题】:Equivalence of Observable.Do for Enumerable [duplicate] 【发布时间】:2021-02-06 14:47:08 【问题描述】:

System.Reactive 中有一个 Do 方法来为序列中的每个项目执行一个 mutator。

在标准库或第三方(如morelinq)中是否有任何等效的 IEnumerable 方法?

【问题讨论】:

【参考方案1】:

LINQ 查询运算符通常意味着没有副作用。你可以使用foreach 循环来“做”你的事情。

如果您不关心副作用,也可以使用SelectWhere 方法:

enumerable.Select(x =>  /*do something here */ return x; )

对于List<T>,有一个ForEach 扩展方法可用于为每个元素执行Action<T>

【讨论】:

Do 方法作为管道的一部分执行操作。 ForEach 为物化列表执行此操作,这不是我需要的。我需要它的拉取版本。 我知道,因此答案中的“对于List<T>...”。那么使用我的前两个建议中的任何一个吗?

以上是关于Observable.Do 等价于 Enumerable [重复]的主要内容,如果未能解决你的问题,请参考以下文章

csharp 例如-CSHARP-GroupDocs.Text.Examples.CSharp-ContainerExtractor-EnumeratingAllEntities.cs

csharp 例如-CSHARP-GroupDocs.Text.Examples.CSharp-ContainerExtractor-EnumeratingAllEntities.cs

csharp 例如-CSHARP-GroupDocs.Text.Examples.CSharp-ContainerExtractor-EnumeratingAllEntities.cs

csharp 例如-CSHARP-GroupDocs.Text.Examples.CSharp-ContainerExtractor-EnumerateAllArchivedFiles.cs

csharp 例如-CSHARP-GroupDocs.Text.Examples.CSharp-ContainerExtractor-EnumerateAllArchivedFiles.cs

在c语言里,if (x)等价于if (x!=0)、if (!x)等价于if (x==0)吗?