你怎么解析C#中的字符串?

时间:2012-09-12 20:24:16

标签: c# string

在开发评分组件时,我们有一个棘手的难题。我们有一个C#程序,我们以

的格式从Oracle数据库中获得分数

字段名

字段值

我们将它们解析为两个以逗号分隔的字符串。

我们要求当我们得到一个字段名为“LOW @ HIGH”且字段值为“11 @ 21”的字段名时,我们希望将其放入另一个变量中,格式为LOW = 11,HIGH = 21。 / p>

2 个答案:

答案 0 :(得分:2)

首先解析输入:

var parts = input.Split('@');
var i1 = int.Parse(parts[0]);
var i2 = int.Parse(parts[1]);

接下来计算结果:

return "LOW=" + i1 + ",HIGH=" + i2;

如果将其分解为这两个步骤,问题就变得容易了。

答案 1 :(得分:0)

另一种选择,它向您介绍了非常有用的Zip扩展方法......

string Parse(string fieldName, string fieldValue)
{
  return string.Join( ",",
           fieldName.Split( '@' )
             .Zip( fieldValue.Split( '@' ),
               ( name, value ) => string.Concat( name, "=", value ) ) );
}

所有验证检查都取决于您......

请注意,如果“字段名称”字段包含两个以上的字段名称,则该方法有效。例如,字段名称“LOW @AVERAGE @ HIGH”和字段值“11 @ 15 @ 21”将为您提供LOW=11,AVERAGE=15,HIGH=21

这是一个快速而有趣的练习,但我不得不想知道为什么它会像这样非规范化?!