2011-12-14 2 views
1

API возвращает строку следующим образом: "error=OK\neta=2 - 3 Days\nprice=24.18"разбираемой строки и присвоения конкретных значений переменных

Помимо использования подстроки start/stop индекса и или расщеплением все по разделителями символов и в массив слов можно просто выбрать значение после "nprice=" и от "neta=" до (до «\»)»сразу

+2

Используйте Regex. Это упростит. – Kangkan

+0

Разделение на delimns довольно прямо ... почему это не так хорошо? – bryanmac

ответ

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); 
Смежные вопросы