我已经习惯了使用Java的Stream#Peek
方法,因为它是调试中间流操作的有用方法。对于那些你们谁不熟悉Stream#Peek
方法,下面显示了它的定义:在Linq C#中Java的Stream#Peek方法等价于什么?
Stream<T> peek(Consumer<? super T> action)
返回由该流的要素流, 还执行提供行动在每个元素上作为 元素从结果流中消耗。这是一个 中间操作。
考虑下面这个简单的例子:
List<Integer> integerList = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
List<Integer> result = integerList.stream()
.filter(i -> i % 2 == 0)
.peek(System.out::println)
.collect(Collectors.toList());
随着Stream#Peek
方法,这应该基本上允许我向所有的偶数打印到控制台,这样我可以测试,看看那是什么我会期待的。
我试图找到答案手头上的问题,但似乎无法找到C#
类似的方法,没有人知道相当于Java的Stream#Peek
或其他方法有类似的行为?
List类上有ForEach方法(对于IEnumerable无法使用它的原因有一些争论),因此在使用它之前需要调用“ToList”。尽管它返回void,而不是另一个列表。但是为IEnumerable编写你自己的扩展方法并不重要。 – user1242967
@ user1242967有没有*辩论*为什么它不存在'IEnumerable'。对于IEnumerable是否是个好主意还存在争议,但为什么它没有明确规定,也没有问题。 – Servy
@Servy是的,对我来说不好的措辞。 – user1242967