Dictionary and Texture2D instances as a key.

Well, you could just combine all those individual textures into one texture using the idea of a texture atlas and be done with it. Then you only need one vertex buffer and one index buffer. Also you would end up with one draw call in the end which is important in not-next-gen graphics API.