我已經習慣了使用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