2012-02-20 55 views
2

我有一個列表中的下列過濾器:斯卡拉電梯 - filterNot使用多個參數

messages = messages.filterNot(m => m.room == room) 

我試圖做的是有多個參數,所以我可以匹配具有相同的房間ID的所有項目和相同的數據值,所以像這樣:

messages = messages.filterNot(m => m.room == room, m.data == data) 

這當然不工作,有沒有辦法我可以做到這一點?

在此先感謝,任何幫助非常感謝:)

+2

像'messages.filterNot(M => m.room ==室&& m.data ==數據)'的? – 4e6 2012-02-20 11:47:56

+0

謝謝,偉大的作品:) – jhdevuk 2012-02-20 11:53:09

+0

@ 4e6:作出您的評論的答案,讓* sirjamm *接受它。 – 2012-02-20 12:03:12

回答

11

可以對付它

  1. 簡單

    messages.filterNot(m => m.room == room && m.data == data)
  2. 鏈接過濾器

    messages.filterNot(_.room == room).filterNot(_.data == data)
  3. WithFilter使用其上原始集合應用於限制,而不是創建中間那些

    messages.withFilter(_.room != room).withFilter(_.data != data) map identity