I\'m looking for a drop in solution for caching large-ish amounts of data.
related questions but for different languages:
What you really want is a B-Tree. That's the primary data structure that a database uses. It's designed to enable you to efficiently swap portions of a data structure to and from disk as needed.
I don't know of any widely used, high quality standalone B-Tree implementations for C#.
However, an easy way to get one would be to use a Sql Compact database. The Sql Compact engine will run in-process, so you don't need a seperate service running. It will give you a b-tree, but without all the headaches. You can just use SQL to access the data.