var col = new NameValueCollection() { { "a", "b" }, { "1", "2" } }; // collection initializer
var values = col.Cast<string>().Select(e => col[e]); // b, 2
var str = String.Join(",", values ); // "b,2"
また、拡張メソッドを作成することもできます。
public static string Join(this NameValueCollection collection, Func<string,string> selector, string separator)
{
return String.Join(separator, collection.Cast<string>().Select(e => selector(e)));
}
使用法:
var s = c.Join(e => String.Format("\"{0}\"", c[e]), ",");
NameValueCollection
また、より便利なものに簡単に変換できるDictionary<string,string>
ので、次のようになります。
public static IDictionary<string,string> ToDictionary(this NameValueCollection col)
{
return col.AllKeys.ToDictionary(x => x, x => col[x]);
}
与える:
var d = c.ToDictionary();
Reflectorを使用して見つけたように、NameValueCollection.AllKeys
内部でループを実行してすべてのteキーを収集するため、c.Cast<string>()
より望ましいようです。