String.Split(char[], int)
オーバーロード(http://msdn.microsoft.com/en-us/library/c1bs0eda.aspx)を使用します。2番目のパラメーターは、返すサブストリングの数を制限します。文字列に常に少なくとも1つの等号(キー/値のペア)があることがわかっている場合は、2番目のパラメーターを2に設定します。
string x = "key1=value1 http://www.example.com?a=1;key2=value2 http://www.example.com?a=2;";
char[] equal = new char[1] { '=' };
char[] semi = new char[1] { ';' };
string[] list = x.Split(semi, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in list)
{
string[] kvp = s.Split(equal, 2);
Console.WriteLine("Key: {0}, Value: {1}", kvp[0], kvp[1]);
}
- 結果:
Key: key1, Value: value1 http://www.example.com?a=1
Key: key2, Value: value2 http://www.example.com?a=2