private void Parse(string text) { _allPairs.Clear(); _pairsWithName.Clear(); if (text==null) return; string[] p = text.Split(';'); if (p==null) return; foreach(string pv in p) { if (pv.Length==0) continue; string[] onep = pv.Split(new char[]{'='}, 2); if (onep==null) continue; NameValuePair nvp = new NameValuePair(onep[0].Trim().ToLower()); if (onep.Length<2) nvp.Value = ""; else nvp.Value = onep[1]; _allPairs.Add(nvp); // index by name ArrayList al = _pairsWithName[nvp.Name] as ArrayList; if (al==null) { al = new ArrayList(); _pairsWithName[nvp.Name] = al; } al.Add(nvp); } }