将管道分离的字符串转换为变量和值的更简单方法?

时间:2016-05-22 14:32:51

标签: c# string split key-value

我正在编写的程序的设置是以管道符号分隔的字符串形式提供的。我在下面创建的代码将字符串拆分为其名称/值对,然后使用if语句的长列表在循环中手动遍历它们以创建变量并为其赋值。有更简单的方法吗?

string a = "en=1|ty=1|ns=0|bs=1|rw=0"; //....lots more of these


string[] b = a.Split('|');

foreach (string c in b)
{
      string[] d = c.Split('=');

      if (d[1] == "en") { string en = d[2]; }
      if (d[1] == "ty") { string ty = d[2]; }
      //...on and on and on
 }

2 个答案:

答案 0 :(得分:1)

除非您确实需要单独处理每个变量,否则字典将是处理值的更通用的方法:

var valueDictionary = new Dictionary<string,string>();
foreach (string a in "en=1|ty=1|ns=0|bs=1|rw=0".split("|"))
{
    string[] b = a.Split('=');
    valueDictionary[b[0]] = b[1]; //Your example was 1 base but I think it's should be a 0 base
}

然后您可以使用以下方式访问该值:

string enValue = valueDictionary["en"];

答案 1 :(得分:0)

您可以使用如下代码的字典:

string a = "en=1|ty=1|ns=0|bs=1|rw=0";
var dictionary = new Dictionary<string, string>();
a.Split('|').Select(c => c.Split('=')).ToList().ForEach((val) => { dictionary[val[0]] = val[1]; });
相关问题