Начните с SortedDictionary<string,string>
или SortedList<string,string>
, и вы уже там ...
Если вам нужно несколько элементов на ключ, рассмотрите SortedDictionary<string,List<string>>
. Есть способы упростить добавление и т. Д. С помощью методов расширения - это не должно быть страшно.
Обратите внимание, что NameValueCollection
не чувствителен к регистру, поэтому вам может потребоваться использовать одно из нечувствительных сравнений, например:
Dictionary<string,string> data = new Dictionary<string,string>(
StringComparer.InvariantCultureIgnoreCase);
(правка) Вот пример использования метода расширения для заполнения нескольких значений одним ключом в C # 3.0:
static void Main()
{
var data = new Dictionary<string, List<string>>(
StringComparer.InvariantCultureIgnoreCase);
data.Add("abc", "def");
data.Add("abc", "ghi");
}
static void Add<TKey, TValue>(this IDictionary<TKey, List<TValue>> lookup,
TKey key, TValue value)
{
List<TValue> list;
if (!lookup.TryGetValue(key, out list))
{
list = new List<TValue>();
lookup.Add(key, list);
}
list.Add(value);
}