通過委托傳遞索引規則
如上文,對於檢索規則固定的情況而言,我們可以通過在索引器內部硬編碼完成,但如果要完成一些更為公共的類庫,我們往往還需要“授之以漁”,即除了告訴他“要檢索”這個任務之外,還要把檢索策略和規則告訴它。這方面C#是非常有優勢的,因為它有對象化的托管委托類型(delegate),而且.Net Framework FCL部分也提供了很多現成的委托,所以我們不妨善加利用。
這時候,我們會發現索引器的功能更加強大,我們就像在使用SQL語句的WHERE 子句一樣,以靈活的方式對目標數據根據需要篩選。