c#从字符串转换为特殊类型 - “存在显式转换”

时间:2015-06-16 20:43:30

标签: c#

Outputs.RunParams.RunAlgorithm = Convert.ChangeType(AlgString,typeof(RunAlgorithmConstants));

我正在尝试将程序的运行参数设置为特定值,但AlgString是一个字符串,我需要它是RunAlgorithmConstants类型。作为字符串的AlgString是直接在前一个脚本中将类型RunAlgorithmConstants转换为字符串,将其保存到文本文件,从该文本文件中读取以及将文本设置为AlgString的结果。

当我运行此代码时,我收到此错误:

无法将类型'object'隐式转换为'RunAlgorithmConstants'。存在显式转换(您是否错过了演员?)

命名空间很好。我可以写

if (AlgString.Equals("Example1"))
{
Outputs.RunParams.RunAlgorithm = RunAlgorithmConstants.Example1
}

对于RunAlgorithmConstants可能存在的每个可能值,但我想知道是否有更简单的方法。

编辑:

int LineNumber = Inputs.LineNumber;


var lines = File.ReadAllLines(Inputs.LoadLocation);


string line = lines[LineNumber];


{char[] delimiterChars = {','};


  string[] words = line.Split(delimiterChars);
  words[30] = AlgString

1 个答案:

答案 0 :(得分:1)

Enum.Parse正是您所寻找的:

Outputs.RunParams.RunAlgorithm = (RunAlgorithmConstants) Enum.Parse(typeof(RunAlgorithmConstants), AlgString);