从String中提取值

lev*_*evi 1 c# string parsing

从中读取RESULT的最佳方法是什么string只需要解析字符串,它是从Web服务返回的

"RESULT: FAILED
 RESULT_CODE: 944
 RRN: 313434415392
 APPROVAL_CODE: 244447
 CARD_NUMBER: 4***********3412";
Run Code Online (Sandbox Code Playgroud)

我可以用mystring.split(' '),但我认为这不是一个好主意.

Dar*_*rov 5

您可以使用LINQ来构建字典:

string s = 
    @"RESULT: FAILED
    RESULT_CODE: 944
    RRN: 313434415392
    APPROVAL_CODE: 244447
    CARD_NUMBER: 4***********3412";

IDictionary<string, string> result = s
    .Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)
    .Select(line => line.Split(':'))
    .ToDictionary(x => x[0].Trim(), x => x[1].Trim());
Run Code Online (Sandbox Code Playgroud)

然后按键查询结果:

Console.WriteLine(result["RRN"]);
Run Code Online (Sandbox Code Playgroud)

会给你的313434415392.

或者,如果您想要获取所有键和值,只需循环:

foreach (var item in result)
{
    Console.WriteLine("key: {0}, value: {1}", item.Key, item.Value);
}
Run Code Online (Sandbox Code Playgroud)

  • 1+一行LINQ代码 (2认同)