我有一個像下面的字符串值:獲取以逗號分隔字符串從鍵值對值
var result = "{DimensionTransactionMonth=August, DimensionTransactionYear=2012}"
我需要改造象下面這樣:
var finalResult = "August,2012";
有誰知道該怎麼辦它?
我有一個像下面的字符串值:獲取以逗號分隔字符串從鍵值對值
var result = "{DimensionTransactionMonth=August, DimensionTransactionYear=2012}"
我需要改造象下面這樣:
var finalResult = "August,2012";
有誰知道該怎麼辦它?
因此,你面對的千電子伏 - 值對,我想你的輸入轉換爲Dictionary<string,string>
:
var result = "{DimensionTransactionMonth=August, DimensionTransactionYear=2012}";
var settings = result.Trim('{', '}')
.Split(',')
.Select(s => s.Trim().Split('='))
.ToDictionary(a => a[0], a => a[1]);
現在您可以很容易地得到最終結果:
var finalResult = String.Join(",", settings.Values); // "August,2012"
或它的鍵一些特定的值:
var month = settings["DimensionTransactionMonth"]; // "August"
你需要做3個步驟(如果你希望手動這樣做)。
刪除括號
var s = result.SubString(1, result.Length - 2);
斯普利特鍵值對
var pairs = s.Split(new[]{','});
提取物對=
標誌由分裂值
var resultset = pairs.Select(x => x.Split(new[]{'='})[1]).ToList();
非常明確的答案:) +1 –
這一個也正確。謝謝。 – Tun
你可以使用string.Replace();和string.Split();
var result = "{DimensionTransactionMonth=August, DimensionTransactionYear=2012}"
var splitValues = result.Replace("{","").Replace("}","").Split(",");
var month = splitValues[0].Split("=")[1];
var year = splitValues[1].Split("=")[1];
var finalResult = string.Format("{0},{1}", month, year);
var values = string.Join(",", result.Split(',').Select(o => o.Split(new[] { '=', '{', '}' })[1]));
'resultSplit'?你有沒有試過編譯它? –
@TimSchmelter,謝謝,我在格式化過程中弄壞了它。 – Backs
沒有正則表達式(如果只有這兩個對):
string text = "{DimensionTransactionMonth=August, DimensionTransactionYear=2012}";
var token = text.Trim('{', '}').Split(',').Select(t => t.Trim());
string month = token.First().Split('=').Last().Trim();
string year = token.Last().Split('=').Last().Trim();
string finalResult = string.Format("{0},{1}", month, year);;
這裏是一個襯墊上,這樣我可以看看聰明的,它不依賴於鍵值對的Count
:
var result = "{DimensionTransactionMonth=August, DimensionTransactionYear=2012}";
var stringValues = string.Join(",", result.Trim('{', '}').Split(',').Select(x => x.Split('=')[1]));
Console.Write(stringValues);
輸出:
August,2012
話雖如此,我將與謝爾蓋Berezovskiy的解決方案去查找IDictionary
。
說明:
result.Trim('{', '}').Split(',').Select(x => x.Split('=')[1])
分拆下:
1. .Trim('{', '}')
移除外花括號。
結果: 「DimensionTransactionMonth =八月,DimensionTransactionYear = 2012」
2. .Split(',')
打開步驟之一的結果爲在一個Array分裂 ''
結果:[ 「DimensionTransactionMonth =八月」, 「DimensionTransactionYear = 2012」]
3. .Select(x => x.Split('=')[1])
項目從步驟2的每個項目成IEnumerable<string>
因爲它這個它Splits
"DimensionTransactionMonth=August"
爲["DimensionTransactionMonth","August"]
,我們採取的最後一個值數組"August"
沒有在我們可以使用string.Join(',' ...)
像這樣加入這個IEnumnerable<string>
一起回來:
string.Join(",", result.Trim('{', '}').Split(',').Select(x => x.Split('=')[1]));
閱讀有關.NET中的正則表達式。 –
或者JSON序列化/反序列化 – Dimitri
這是一個Json字符串嗎?您可以將其反序列化爲.NET對象 – Amicable