나는 당신의 확장 문제를 이해하지 않지만, 문자열과 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
설정에 따라 프로젝트의 propertys에서 extentions를 collections.special.stringdictonary로 만들었습니다. (정말로 원하는 경우 화면 갓을 게시 할 수 있습니다) – Crash893
app.config의 문자열을 사용하여이 작업을 수행 할 수 있음을 언급해야합니다. . 나는 방금 문자열 사전으로 그것을하는 방법을 혼란스러워했다. – Crash893