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

本文关键字:变量 方程 字符串 转换 | 更新日期: 2023-09-27 18:12:27

我的程序当前加载一个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

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

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

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

更多信息在这里:具有优先级的方程(表达式)解析器?