/// <summary>
 /// Creates a new OrderedDictionary. The passed delegate will be used to compare keys in this dictionary.
 /// </summary>
 /// <param name="comparison">A delegate to a method that will be used to compare keys.</param>
 public OrderedDictionary(Comparison <TKey> comparison) :
     this(null, Comparers.ComparerFromComparison(comparison), Comparers.ComparerKeyValueFromComparisonKey <TKey, TValue>(comparison))
 {
 }
 /// <summary>
 /// <para>Creates a new OrderedDictionary. The passed delegate will be used to compare keys in this dictionary.</para>
 /// <para>A collection and keys and values (typically another dictionary) is used to initialized the
 /// contents of the dictionary.</para>
 /// </summary>
 /// <param name="keysAndValues">A collection of keys and values whose contents are used to initialized the dictionary.</param>
 /// <param name="comparison">A delegate to a method that will be used to compare keys.</param>
 public OrderedDictionary(IEnumerable <KeyValuePair <TKey, TValue> > keysAndValues, Comparison <TKey> comparison)
     : this(keysAndValues, Comparers.ComparerFromComparison <TKey>(comparison), Comparers.ComparerKeyValueFromComparisonKey <TKey, TValue>(comparison))
 {
 }