2011-12-14 75 views
1

API返回的字符串:"error=OK\neta=2 - 3 Days\nprice=24.18"解析字符串,如下分配特定值的變量

除了使用子與start/stop指數或分隔符,並進入一個字陣分裂一切我能不能"nprice="後挑選出的價值,從"neta="到(前「\」)」馬上

+2

使用正則表達式。這將簡化。 – Kangkan 2011-12-14 06:53:02

回答

3

你可以使用yourString.Split(new[] { @"\n" }, StringSplitOptions.None)得到字符串的列表

然而,我更傾向於將要變成一個字典:?

var yourString = @"error=OK\neta=2 - 3 Days\nprice=24.18"; 
var lookup = (from sub in yourString.Split(new[] { @"\n" }, StringSplitOptions.None) 
       let parts = sub.Split(new[] { '=' }, 2) 
       select parts).ToDictionary(p => p[0], p => p[1]); 

你會再使用這個像這樣:

var error = lookup["error"]; 
var eta = lookup["eta"]; 
var price = Convert.ToDecimal(lookup["price"]); 

Console.WriteLine("Error Code: {0}, ETA: {1}, Price: {2:C}", error, eta, price);