Microsoft just added an official prelease version of exactly what you’re looking for (called a
MultiValueDictionary) available through NuGet here: https://www.nuget.org/packages/Microsoft.Experimental.Collections/
Info on usage and more details can be found through the official MSDN blog post here: http://blogs.msdn.com/b/dotnet/archive/2014/06/20/would-you-like-a-multidictionary.aspx
I’m the developer for this package, so let me know either here or on MSDN if you have any questions about performance or anything.
Hope that helps.