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

本文关键字:存在 显式转换 类型 字符串 转换 | 更新日期: 2023-09-27 17:56:42

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

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

当我运行此代码时,出现此错误:

不能将类型"对象"隐式转换为"运行算法常量"。存在显式转换(您是否缺少强制转换?

命名空间很好。我可以写

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

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

Enum.Parse 就是你要找的:

Outputs.RunParams.RunAlgorithm = (RunAlgorithmConstants) Enum.Parse(typeof(RunAlgorithmConstants), AlgString);
相关文章: