Почему бы не использовать простой цикл foreach
?
foreach(var kvp in dict)
{
nameValueCollection.Add(kvp.Key.ToString(), kvp.Value.ToString());
}
Это может быть встроено в метод расширения:
public static NameValueCollection ToNameValueCollection<TKey, TValue>(
this IDictionary<TKey, TValue> dict)
{
var nameValueCollection = new NameValueCollection();
foreach(var kvp in dict)
{
string value = null;
if(kvp.Value != null)
value = kvp.Value.ToString();
nameValueCollection.Add(kvp.Key.ToString(), value);
}
return nameValueCollection;
}
Вы могли бы тогда назвать это так:
var nameValueCollection = dict.ToNameValueCollection();