繁体   English   中英

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

[英]c# Converting from string to special type - “an explicit conversion exists”

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

Enum.Parse是您在寻找什么:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM