1
我有一個排序順序的事件流。每個事件都是具有關鍵屬性(即其ID)的組的一部分。這些事件對於非ID屬性具有不同的值。我希望在身份證更改之前忽略除最終事件之外的所有事宜。例如如何依次發出最後一個匹配元素?
{ID:1, Prop: "V1"}, {ID:1, Prop:"V2"}, {ID:1, Prop:"V3"}, {ID:2, Prop:"V1"}, {ID:2, Prop:"V2"}, {ID:2, Prop:"V3"}, {ID:2, Prop:"V25"}, {ID:3, Prop:"V1"}, {ID:3, Prop:"V8"}
我想只發出:
{ID:1, Prop:"V3"},{ID:2, Prop:"V25"},{ID:3, Prop:"V8"}
我用了GroupBy
ID,然後TakeLast(1)
但TakeLast
,據我瞭解,會等到流完成,似乎可能多花更多的時間。我知道當我在流中看到不同的ID時,我已經看到了這個ID序列的最後一個 - 所以我希望在我看到關鍵屬性發生變化時立即發出該值。我想有點像distinctUntilChange
,但給我最後的價值。
只要我在流中看到第一個包含ID:2
的元素,我預計會發出第一個元素。
我想過緩衝或什麼東西,但仍然得到我的頭反應。有任何想法嗎?
我認爲它涉及緩衝。也許我還沒有完成對小溪的掌握! – GraemeMiller