在开发评分组件时,我们有一个棘手的难题。我们有一个C#程序,我们以
的格式从Oracle数据库中获得分数字段名
字段值
我们将它们解析为两个以逗号分隔的字符串。
我们要求当我们得到一个字段名为“LOW @ HIGH”且字段值为“11 @ 21”的字段名时,我们希望将其放入另一个变量中,格式为LOW = 11,HIGH = 21。 / p>
答案 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
这是一个快速而有趣的练习,但我不得不想知道为什么它会像这样非规范化?!