将字符串转换为带变量的方程式

时间:2014-07-10 17:34:16

标签: c# string csv int

我的程序当前加载了一个csv文件,并将每一行转换为不同的字符串和int值。问题是,虽然我可以轻松转换一个简单的数字,但它需要能够转换带变量的方程式。

我目前的代码是 -

string[] values = line.Split(new string[] { "," }, StringSplitOptions.None)
                    .Select(p => p.Trim()).ToArray();
                if (values.Length != 8) continue;

                var species = new SpeciesClasses()
                {
                    Species = values[0],
                    Description= values[1],
                    Strength = int.Parse(values[2]),
                    Intelligence = int.Parse(values[3]),
                    Dexerity = int.Parse(values[4]),
                    Charisma = int.Parse(values[5]),
                    Endurance = int.Parse(values[6]),
                    Initiative = int.Parse(values[7]),

                };

我的csv文件是

Pilot, Trained to handle all vehicle types., 0, 6, 0, 0, 0, 0
Medic, Trained to cure and heal others., 0, 0, 5, 0, 0, 0

哪个工作正常,现在棘手的部分是这样的一行 -

Berzerker, The closer to death this crew gets - the stronger they hit., (15-HP)/4, 0, 0, 0, 0, 0
Focused, Using their mass intellect - this crew can aim more accurately., 0, 0, INTEL, 0, 0, 0

因此,我不仅需要将字符串转换为具有不同变量的int方程式 - 在本例中为HP和INTEL int。

1 个答案:

答案 0 :(得分:0)

如果int.Parse()失败(btw try int.TryParse(...))回退到更专业的工具:

更多信息: Equation (expression) parser with precedence?