2011-12-14 65 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);