私はあなたの拡張機能の問題を理解していないが、私は、文字列とNameValueCollectionの間の変換をする前にこのコードを使用しました - あなたは簡単にStringDictionaryを使用するように変更することができます。
public NameValueCollection StringToNameValueCollection(string KeyValueData, char KeyValueSeparator, char ItemSeparator)
{
NameValueCollection nvc = new NameValueCollection();
// split string into array of key/value pairs
string[] kvpairs = KeyValueData.Split(new char[]{ItemSeparator});
// add each pair to the collection
for (int i = 0; i < kvpairs.Length; i++)
{
if (!string.IsNullOrEmpty(kvpairs[i]))
{
if (kvpairs[i].Contains(KeyValueSeparator.ToString()))
{
// get the key
string k = kvpairs[i].Remove(kvpairs[i].IndexOf(KeyValueSeparator.ToString())).Trim();
// get the value
string v = kvpairs[i].Remove(0, kvpairs[i].IndexOf(KeyValueSeparator) + 1).Trim();
// add key/value if key is valid
if (!string.IsNullOrEmpty(k))
{
nvc.Add(k, v);
}
}
else
{
// no key/value separator in the pair, so add whole string as key and value
nvc.Add(kvpairs[i].Trim(), kvpairs[i].Trim());
}
}
}
return nvc;
}
変換をNameValueCollectionから文字列へ:
public string NameValueCollectionToString(NameValueCollection nvc, char KeyValueSeparator, char ItemSeparator)
{
StringBuilder sb = new StringBuilder();
for(int i = 0; i < nvc.Count; i++)
{
if (i != 0)
{
sb.Append(ItemSeparator);
}
sb.Append(nvc.Keys[i]);
sb.Append(KeyValueSeparator);
sb.Append(nvc[i]);
}
return sb.ToString();
}
私が使用したコードからいくつかの変更を加えなければなりませんでしたが、ビルドする必要があります。あまりにも寛容ではないことに注意してください。セパレータ文字は、 'key'または 'value'のいずれの文字列にも現れません。
拡張機能を作成した場所のコード/スクリーンショットを貼り付けることはできますか? – Grzenio
私はコレクションの設定でプロジェクトのプロパティにエクステンションを作成しました.special.stringdictonary(あなたが本当にそれを望むなら、私はスクリーンギャブを投稿できます) – Crash893
私はapp.configの文字列でこれを行うことができます。私はちょうど文字列辞書でそれを行う方法を混乱させる。 – Crash893